• добавляем таксо ко многим, работает, отображается («gu_xxx» — константы текстовые)

    // add cat
    
    add_action('init', 'gu_reg_cat_site', $gu_wp_order );
    	function gu_reg_cat_site() {
    	$labels = array(
    		'name'              		=> gu_wp_cat,
    		'singular_name'     		=> $name,
    		'popular_items'     		=> gu_wp_popular,
    		'search_items'      		=> gu_wp_search,
    		'not_found' 			=> gu_wp_not_found,
    		'all_items'         		=> gu_wp_add_all,
    		'view_item'         		=> gu_wp_view,
    		'separate_items_with_commas' 	=> gu_wp_separate,
    		'add_or_remove_items'           => gu_wp_addremove,
    		'choose_from_most_used'         => gu_wp_selectmost,
    		'parent_item'       		=> gu_wp_parent,
    		'parent_item_colon' 		=> gu_wp_parent . ':',
    		'edit_item'         		=> gu_wp_add_edt,
    		'update_item'       		=> gu_wp_update,
    		'add_new_item'      		=> gu_wp_add_rec,
    		'new_item_name'     		=> gu_wp_add_rec
    	);
    	$args = array(
    		'labels'                => $labels,
    		'public'                => true,
    		'show_in_nav_menus'     => true, // равен аргументу public
    		'show_ui'               => true, // равен аргументу public
    		'show_tagcloud'         => true,
    		'hierarchical'          => true,
    		'update_count_callback' => '',
    		'rewrite'               => true,
    		'capabilities'          => array(),
    		'sort'                  => true,
    		'meta_box_cb'           => null,
    		'show_admin_column'     => true,
    		'_builtin'              => false,
    		'show_in_quick_edit'    => true 	);
    	$post_types = array(		'gu_site_post',
    // много
    'gu_dih_post');
    
    	foreach ( $post_types as $post_type ) {
    	$args['labels'] = array_merge( $args['labels'], array(	'name' => gu_wp_cat1 . get_post_type_object( $post_type )->labels->name ) );
    	register_taxonomy( str_replace('post','',$post_type) . 'cat', $post_type, $args ); }
    }

    аналогичный, выполняется без ошибок, но изменений не видно

    add_action('init', 'gu_reg_cat_who', $gu_wp_order );
    	function gu_reg_cat_who() {
    	$labels = array(
    		'name'              		=> 'Кто?',
    		'singular_name'     		=> $name,
    		'popular_items'     		=> gu_wp_popular,
    		'search_items'      		=> gu_wp_search,
    		'not_found' 			=> gu_wp_not_found,
    		'all_items'         		=> gu_wp_add_all,
    		'view_item'         		=> gu_wp_view,
    		'separate_items_with_commas' 	=> gu_wp_separate,
    		'add_or_remove_items'           => gu_wp_addremove,
    		'choose_from_most_used'         => gu_wp_selectmost,
    		'parent_item'       		=> gu_wp_parent,
    		'parent_item_colon' 		=> gu_wp_parent . ':',
    		'edit_item'         		=> gu_wp_add_edt,
    		'update_item'       		=> gu_wp_update,
    		'add_new_item'      		=> gu_wp_add_rec,
    		'new_item_name'     		=> gu_wp_add_rec	);
    	$post_types = array('gu_main_post',
    // тут много
    'gu_dih_post');
    
    	$args = array(
    		'labels'                => $labels,
    		'public'                => true,
    		'show_in_nav_menus'     => true,
    		'show_ui'               => true,
    		'show_tagcloud'         => true,
    		'hierarchical'          => true,
    		'update_count_callback' => '',
    		'rewrite'               => true,
    		'capabilities'          => array(),
    		'sort'                  => true,
    		'meta_box_cb'           => null,
    		'show_admin_column'     => true,
    		'_builtin'              => false,
    		'show_in_quick_edit'    => true 	);
    
    	foreach ( $post_types as $post_type ) {
    
    //$args['labels'] = array_merge( $args['labels'], array(	'name' => 'Кто: ' . get_post_type_object( $post_type )->labels->name ) );  // тоже не работает
    
    	register_taxonomy('gu_all_who_cat', $post_type, $args ); }
    }

    мозги сломал.

    помогите, плз. где собака порылась?
    записей в этих таксо нет, поиск в БД по ‘gu_all_who_cat’ = 0

    если тут
    register_taxonomy(‘gu_all_who_cat’, $post_type, $args );
    указать вместо $post_type конкретное значение, например ‘gu_main_post’, то в типе поста таксо появляется (отображается). добавление в цикл ‘echo $post_type;’ видно, что перебирает (вывод при обновлении стр).
    а так — ошибок не выдает, но отображает без этой категории.
    есть идеи?

    вот так работало ранее и отображалось во всех типах

    register_taxonomy('gu_all_who_cat', array('gu_main_post',
    // много тут
    'gu_dih_post'), $args );

    ++

    связанное

    https://ru.forums.wordpress.org/topic/%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b5%d0%bd%d0%b8%d0%b5-%d0%bc%d0%b5%d1%82%d0%ba%d0%b8-%d0%bd%d0%be%d0%b2%d0%be%d0%b9-%d1%82%d0%b0%d1%85-%d0%bf%d1%80%d0%b8-%d0%b4%d0%be%d0%b1%d0%b0%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b8-%d0%b2-%d0%bc%d0%b0%d1%81%d1%81%d0%b8?replies=6

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • ++ ага, продвинулся

    foreach ( $post_types as $post_type ) {
    	$args['labels'] = array_merge( $args['labels'], array(	'name' => 'Кто: ' . get_post_type_object( $post_type )->labels->name ) );
    	register_taxonomy('gu_all_who_cat' . $post_type, $post_type, $args ); }

    работает

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

    в чем отличия от

    // вот так работало ранее и отображалось во всех типах

    догадка?
    может быть нельзя для всех(перч.типов) регить таксо с одинаковым именем?

    но тут вроде как работает в примере

    http://wp-kama.ru/function/register_taxonomy

    и так выше

    // вот так работало ранее и отображалось во всех типах

    🙁
    я тогда если никто не ответит через нед. снова в топ подниму, если никто не против..

    в общем — по отдельности норм, в цикле — х/й.
    печаль.

    короче, не работает даже так (т.е. работает, но не так как надо)

    // две подряд с одним именем и аргументами
    register_taxonomy('gu_all_10', array('gu_main_post','gu_soft_post'), $args );
    register_taxonomy('gu_all_10', array('gu_book_post','gu_pic_post'), $args );

    в этом случае (если таких строк несколько) отработает последняя (одна таксо для разных т.постов).

    работает и так (тоже не то)

    // регим куда-нить а потом регим остальным
    register_taxonomy('gu_all_10', array('gu_main_post','gu_soft_post'), $args );
    register_taxonomy_for_object_type('gu_all_10', 'gu_book_post' );

    получается, что register_taxonomy с одним именем должна отработать только 1 раз, т.е. просто что она есть. в этот момент ей можно передать, для каких типов постов она регится и далее если надо регить для др. — через register_taxonomy_for_object_type.


    но вот беда, на вопрос я ответа не получил: как регить 1 таксо для нескольких постов, изменяя при этом ее имя отображения (label) (не имя таксо).

    пока получается, что регить надо вообще все всем, а потом просто скрывать лишние (и\или изменять отображение названия).

    еще раз что нужно. если кого достал, сорр.

    есть, например 3 своих типа поста (Книги, Софт, Люди).

    Нужно зарегить 1 таксо ‘my_pipl’ для всех 3х с разными именами (Автор, Разработчик, Человек). При добавлении в любую из них в других такой человек тоже появлялся бы.
    Зарегить не проблема, только вот имя отображения в меню изменить не получается.

Просмотр 5 ответов — с 1 по 5 (всего 5)

Тема «Помогите с кодом, плз. :_(» закрыта для новых ответов.