2014-11-05 2 views
0

Я создал пользовательский тип записи под названием «портфель» и добавил колонку тегов в редакторе с помощью:Wordpress показать теги, относящиеся к ТАМОЖЕННЫЙ ПОСТ типа

register_taxonomy_for_object_type('post_tag', 'portfolio' ); 

После добавления тегов виджет на боковой панели он показывает все теги из всех моих сообщений. Как показать теги, которые относятся только к типу «портфолио»?

Также есть способ изменить имя по умолчанию «Теги» для типа портфолио на «Теги портфолио»?

+1

Почему вы не зарегистрировать новую пользовательскую таксономию (не иерархический) с [register_taxonomy()] (HTTP: //codex.wordpress.org/Function_Reference/register_taxonomy) для вашего портфолио, вместо использования собственного 'post_tag'? – birgire

+1

Да, объясняя *** почему *** вы хотите сделать это вместо создания новой таксономии, было бы полезно выяснить правильное решение. – brasofilo

ответ

3

Самый простой способ достичь этого, вероятно, будет заключаться в создании пользовательской таксономии. Это также единственный способ изменить название ваших тегов на теги портфолио.

Чтобы сделать это, вы можете использовать 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')); 
+0

Кстати: вы можете использовать generatewp.com для простого создания соответствующего кода: http://generatewp.com/taxonomy/ – baltpeter

+0

Спасибо за подробное объяснение! Код работает отлично! – CyberJunkie

+0

Рад, что я мог бы помочь. – baltpeter

Смежные вопросы