我试图使用WordPress REST API获取分类法列表。点击routes_visited
工作正常,但我也有一个名为location的自定义分类,访问delegate void GetMinThreadsDelegate(out int workerThreads, out int completionPortThreads);
delegate bool SetMinThreadsDelegate(int workerThreads, int completionPortThreads);
…
var getMinThreads = (GetMinThreadsDelegate)typeof(ThreadPool).GetMethod("GetMinThreads")
.CreateDelegate(typeof(GetMinThreadsDelegate));
var setMinThreads = (SetMinThreadsDelegate)typeof(ThreadPool).GetMethod("SetMinThreads")
.CreateDelegate(typeof(SetMinThreadsDelegate));
getMinThreads(out int minWorkerThreads, out int minCompletionPortThreads);
setMinThreads(minWorkerThreads, Math.Max(16, minCompletionPortThreads));
会返回403 /wp-json/wp/v2/taxonomies/post_tag
错误。
我无法弄清楚在什么情况下会以这种方式禁止分类法REST访问。有什么想法吗?
答案 0 :(得分:4)
注册分类时,您需要将 show_in_rest 设置为true。
https://codex.wordpress.org/Function_Reference/register_taxonomy
如果您的自定义分类是由插件创建的,并且您需要更改它的行为,请尝试以下帖子:
http://scottbolinger.com/custom-taxonomies-in-the-wp-api/
简而言之,您可以将以下代码添加到您的函数文件中,以便为所有自定义分类法启用 show_in_rest 。
function prefix_add_taxonimies_to_api() {
$args = array(
'public' => true,
'_builtin' => false
);
$taxonomies = get_taxonomies($args, 'objects');
foreach($taxonomies as $taxonomy) {
$taxonomy->show_in_rest = true;
}
}
add_action('init', 'prefix_add_taxonimies_to_api', 30);
我希望这会对你有所帮助。