使用admin-ajax.php
而且编写自定义处理程序是不必要的,我通常建议改为编写REST API端点,但即使在这里也没有必要。
只需向RESTAPI询问该类别。如果它返回类别,则它存在;如果它不存在,则它不存在。
E、 g。https://example.com/wp-json/wp/v2/categories/?slug=categoryname
在javascript中,可能如下所示:
async function check_category_exists( slug ) {
let response = await fetch( `https://example.com/wp-json/wp/v2/categories/?slug=${slug}` );
if (response.ok) { // if HTTP-status is 200-299
// get the response body (the method explained below)
let json = await response.json();
return ( json.length > 0 );
} else {
throw new Exception( "HTTP-Error: " + response.status );
}
}
现在,我们有了一个异步JS函数,它获取术语,如果找到了,则返回
true
, 如果它没有返回
false
. 记住这些返回承诺,类似于jQuery和其他地方的AJAX函数。您可以这样使用它:
check_category_exists( "test" ).then(
( result ) => {
if ( result ) {
console.log( "test exists" );
} else {
console.log( "it does not exist" );
}
}
).catch(
error => console.log( "something went wrong" )
);
确保更改
example.com
要访问您的站点,甚至更好,请让WP将REST API的路径放在页面上,以便您可以访问它,并在任何地方使用相同的代码(提示:在站点上问这个问题,很容易回答,有很多有趣的事情要知道)
或者,通过从REST API获取类别/wp-json/wp/v2/categories
并将它们存储在数组/列表中。然后,您可以使用该数组列出搜索中的项目,并可以测试该数组中是否有项目,以查看该项目是否存在。