Мне нужно отключить маршруты по умолчанию WP REST API
и добавить пользовательские маршруты.
Я нашел этот вопрос, который помогает мне найти следующий ответ.
remove_action('rest_api_init', 'create_initial_rest_routes', 99);
Однако это также удалит любые маршруты настраиваемого типа контента. Так вместо этого вы можете использовать:
add_filter('rest_endpoints', function($endpoints) { if ( isset( $endpoints['/wp/v2/users'] ) ) { unset( $endpoints['/wp/v2/users'] ); } // etc });
Но из-за этого мне нужно знать все маршруты по умолчанию и удалять один за другим, что не является самым чистым способом.
Я хотел бы знать, есть ли какой-нибудь более чистый способ достичь этого?
ОБНОВЛЕНИЕ 1:
В соответствии с предложением Криса я хотел бы добавить более подробную информацию к вопросу.
В настоящее время я использую фильтр rest_api_init
для добавления моих настраиваемых маршрутов с помощью метода register_rest_route
в соответствии с приведенным ниже кодом, который я нашел на этой статье.
add_action( 'rest_api_init', function () {
register_rest_route( 'myplugin/v1', '/sample/', array(
'methods' => 'GET',
'callback' => 'my_awesome_func',
) );
} );
function my_awesome_func( $data ) {
return 'somthing';
}
Пользовательский маршрут работает хорошо, но, к сожалению, я не могу отключить маршруты по умолчанию, например /wp/v2/posts
.
Мой вопрос:
Как отключить/отключить маршруты по умолчанию при использовании фильтра rest_api_init
для регистрации новых настраиваемых маршрутов?