Дело в том, что я создал собственный маршрут API /wp-post-modal/v1/any-post-type
, который извлекает сообщения любого типа. Локально он работает отлично (MAMP), но на нескольких производственных серверах (в разных средах) возвращает ошибку 500.
Маршрут API, который работает локально:
Примеры маршрутов API в рабочей среде (покажите, что маршрут API существует):
- https://wp-post-modal.allureprojects.com/wp-json/wp-post-modal/v1
- https://spedform.com/wp-json/wp-post-modal/ v1а>
Использование, которое должно работать на производстве (но не из-за ошибки 500):
- https://wp-post-modal.allureprojects.com/wp-json/wp-post-modal/v1/any-post-type?slug=modal-content
- https://spedform.com/wp-json/wp-post-modal/v1/any-post-type?slug=privary-policy
Я проверил журналы ошибок nginx на сервере, и они пусты.
Код для пользовательского маршрута API:
/**
* Register API Route: Query Any Post Type
*/
public function any_post_api_route() {
register_rest_route( $this->plugin_name . '/v1', '/any-post-type/', array(
'methods' => 'GET',
'callback' => array( $this, 'get_content_by_slug' ),
'args' => array(
'slug' => array(
'required' => false
)
)
) );
}
/**
*
* Get content by slug
*
* @param WP_REST_Request $request
*
* @return WP_REST_Response
*/
public function get_content_by_slug( WP_REST_Request $request ) {
WPBMap::addAllMappedShortcodes();
// get slug from request
$slug = $request['slug'];
// get title by slug
$return = get_page_by_path( $slug, ARRAY_A, array( 'page', 'post' ) );
// render shortcodes from Visual Composer
$return['post_content'] = apply_filters( 'the_content', $return['post_content'] );
$response = new WP_REST_Response( $return );
return $response;
}