我在用古腾堡。。。这可能是原因吗?
是的,Gutenberg(或块编辑器)在处理分类术语(以及自定义帖子类型)时使用WordPress REST API。
所以过滤器rest_collection_query
(或rest_{taxonomy}_query
) 无论是谁/什么人提出了REST API请求,或者是从何处提出的,都将应用该请求(例如,是否通过/wp-admin/
还是站点前端?)。
我正在使用wordpress API
假设您正在向“集合”分类端点发出手动请求(/wp-json/wp/v2/collection
), 您可以通过使用自定义参数来区分请求的来源,如so,其中参数名称为my_key
—如果值为1
, 然后我们可以过滤$args
(即查询参数):
add_filter( \'rest_collection_query\', function( $args, $request ){
if ( \'1\' === $request->get_param( \'my_key\' ) ) {
// your code here
} // else, don\'t filter/modify $args
return $args;
}, 10, 2 );
然后,例如使用
window.fetch()
在JavaScript中,您可以执行以下操作:
window.fetch( \'/wp-json/wp/v2/collection?per_page=2&my_key=1\' )
.then( res => res.json() )
.then( terms => console.log( terms ) );
Alternate Solution
Add your own custom endpoint 随心所欲。。
这个Classic Editor 可能会有所帮助,但如果插件或自定义代码对完全相同的“集合”分类端点执行请求,那么您就知道会发生什么情况了。。)
Last but not least..
默认情况下,
is_admin()
退货
false
在REST API端点/URL上。例如,如果你在
http://example.com/wp-json/wp/v2/posts
(或者您向该端点发出API请求),然后:
if ( ! is_admin() ) {
// code here runs
}