我正在尝试在wp4.7.4上运行自定义插件。下面是我的简单插件
add_action( 'rest_api_init', 'register_routes');
function register_routes() {
register_rest_route( 'taxonomy-manager/v1', '/taxonomies/(P<taxonomy_type>[a-zA-Z]+)', array(
'methods' => 'GET',
'callback' => 'get_or_insert'
) );
}
function get_or_insert( WP_REST_Request $request ) {
$parameters = $request->get_params();
return $parameters;
}
当我请求wp-json
端点时,我在那里没有看到插件路由。插件被成功激活。我错过了什么吗?上面的插件(或基于rest_api_init
事件的类似插件)对其他人有效吗?谢谢。
5条答案
按热度按时间6yt4nkrj1#
我得到了解决方案,你需要使用wp-json与您的网址...像https://yourdomain.com/wp-json/namespace/and-so-on/
那么它将工作。我在URL中丢失了wp-json。
yc0p9oo02#
参考以下检查表,
1.改变你的固定链接作为一个漂亮的固定链接和检查。
2.检查你的.htacess文件(当你保存永久链接结构时,它应该是可写的,它可以被wp重写)。
3.检查授权
4.检查以下自定义端点创建方法,
参考:https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/
kkih6yb83#
在我的例子中,回调实际上是一个私有方法,我必须将它改为一个公共方法才能让所有的东西工作:
在一个安装中,私有方法导致堆栈跟踪错误,但在另一个安装中,私有方法没有被调用,也没有生成错误。我仍然不确定为什么一台机器的React是这样,而另一台机器没有,两台机器都将
WP_DEBUG
和WP_DEBUG_LOG
设置为true。dldeef674#
使用最新版本,我没有看到rest_API_init动作被触发,看起来plugin.php中的代码总是空的,并且返回,不允许rest_api_init动作被触发:
gj3fmq9x5#
检查你的插件是否被激活,如果它没有被激活,它不会开火。