WordPress:分层标签端点的问题

时间:2018-11-26 16:37:41

标签: php wordpress wordpress-theming wordpress-rest-api

我的一位同事遵循了本教程,了解有关wordpress的分层标签: https://css-tricks.com/how-and-why-to-convert-wordpress-tags-from-flat-to-hierarchical

这是我的孩子主题的function.php上的部分

function wd_hierarchical_tags_register() {



  // Maintain the built-in rewrite functionality of WordPress tags



  global $wp_rewrite;



  $rewrite =  array(

    'hierarchical'              => false, // Maintains tag permalink structure

    'slug'                      => get_option('tag_base') ? get_option('tag_base') : 'tag',

    'with_front'                => ! get_option('tag_base') || $wp_rewrite->using_index_permalinks(),

    'ep_mask'                   => EP_TAGS,

  );



  // Redefine tag labels (or leave them the same)



  $labels = array(

    'name'                       => _x( 'Tags', 'Taxonomy General Name', 'hierarchical_tags' ),

    'singular_name'              => _x( 'Tag', 'Taxonomy Singular Name', 'hierarchical_tags' ),

    'menu_name'                  => __( 'Taxonomy', 'hierarchical_tags' ),

    'all_items'                  => __( 'All Tags', 'hierarchical_tags' ),

    'parent_item'                => __( 'Parent Tag', 'hierarchical_tags' ),

    'parent_item_colon'          => __( 'Parent Tag:', 'hierarchical_tags' ),

    'new_item_name'              => __( 'New Tag Name', 'hierarchical_tags' ),

    'add_new_item'               => __( 'Add New Tag', 'hierarchical_tags' ),

    'edit_item'                  => __( 'Edit Tag', 'hierarchical_tags' ),

    'update_item'                => __( 'Update Tag', 'hierarchical_tags' ),

    'view_item'                  => __( 'View Tag', 'hierarchical_tags' ),

    'separate_items_with_commas' => __( 'Separate tags with commas', 'hierarchical_tags' ),

    'add_or_remove_items'        => __( 'Add or remove tags', 'hierarchical_tags' ),

    'choose_from_most_used'      => __( 'Choose from the most used', 'hierarchical_tags' ),

    'popular_items'              => __( 'Popular Tags', 'hierarchical_tags' ),

    'search_items'               => __( 'Search Tags', 'hierarchical_tags' ),

    'not_found'                  => __( 'Not Found', 'hierarchical_tags' ),

  );



  // Override structure of built-in WordPress tags



  register_taxonomy( 'post_tag', 'post', array(

    'hierarchical'              => true, // Was false, now set to true

    'query_var'                 => 'tag',

    'labels'                    => $labels,

    'rewrite'                   => $rewrite,

    'public'                    => true,

    'show_ui'                   => true,

    'show_admin_column'         => true,

    '_builtin'                  => true,

  ) );



}

add_action('init', 'wd_hierarchical_tags_register');

现在,我已经继承了该项目,我需要将rest api端点用于标记(www.mywpsite.com/wp-json/wp/v2/tags),但是我一直在获取“ rest_no_route / status:404“响应,就好像端点已禁用。 有谁知道为什么吗?

仍然感谢您的时间。

最良好的祝愿。

伊凡

1 个答案:

答案 0 :(得分:0)

已解决! 我只需要在 register_taxonomy 函数的arguments数组内添加另外两个参数(' show_in_rest '和' rest_base '):

register_taxonomy( 'post_tag', 'post', array(
'hierarchical'              => true, // Was false, now set to true
'query_var'                 => 'tag',
'labels'                    => $labels,
'rewrite'                   => $rewrite,
'public'                    => true,
'show_ui'                   => true,
'show_admin_column'         => true,
'_builtin'                  => true,
'show_in_rest'              => true,
'rest_base'                 => 'tags',

));