Wordpress显示属于自定义帖子类型的标签


Wordpress show tags belonging to custom post type

我创建了一个名为"portfolio"的自定义帖子类型,并使用在编辑器中添加了标签列

register_taxonomy_for_object_type( 'post_tag', 'portfolio'  );

在我将标签小部件添加到侧边栏后,它会显示我所有帖子中的所有标签。如何显示仅属于"公文包"帖子类型的标签?

还有没有办法将公文包帖子类型的默认名称"Tags"更改为"portfolio Tags"?

实现这一点的最简单方法可能是创建一个自定义分类法。这也是将标签名称更改为Portfolio tags的唯一方法。

要做到这一点,您可以使用register_taxonomy():

// Register Custom Taxonomy
function portfolio_tags_taxononmy() {
    $labels = array(
        'name'                       => 'Portfolio Tag',
        'singular_name'              => 'Portfolio Tag',
        'menu_name'                  => 'Portfolio Tags',
        'all_items'                  => 'All Portfolio Tags',
        'parent_item'                => 'Parent Portfolio Tag',
        'parent_item_colon'          => 'Parent Portfolio Tag:',
        'new_item_name'              => 'New Portfolio Tag',
        'add_new_item'               => 'Add New Portfolio Tag',
        'edit_item'                  => 'Edit Portfolio Tag',
        'update_item'                => 'Update Portfolio Tag',
        'separate_items_with_commas' => 'Separate Portfolio Tags with commas',
        'search_items'               => 'Search Portfolio Tags',
        'add_or_remove_items'        => 'Add or remove Portfolio Tags',
        'choose_from_most_used'      => 'Choose from the most used Portfolio Tags',
        'not_found'                  => 'Not Found',
    );
    $args = array(
        'labels'                     => $labels,
        'hierarchical'               => false,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => true,
    );
    register_taxonomy( 'portfolio-tags', array( 'portfolio' ), $args );
}
// Hook into the 'init' action
add_action( 'init', 'portfolio_tags_taxononmy', 0 );

现在,您可以使用"公文包标签"而不是"post_tag":

register_taxonomy_for_object_type( 'portfolio-tags', 'portfolio' );

要生成标签云,可以使用wp_tag_cloud():

wp_tag_cloud( array( 'taxonomy' => 'portfolio-tags' ) );