原因我会得到403 rest_forbidden访问WP API分类法/分类名称?

时间:2017-03-23 17:12:45

标签: wordpress wordpress-rest-api

我试图使用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访问。有什么想法吗?

1 个答案:

答案 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);

我希望这会对你有所帮助。