dondelion
  • 0
Новичок

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

  • 0

мы настроили настраиваемый тип сообщения под заголовком настраиваемого типа сообщения вместе с двумя пользовательскими таксономиями. (на нашу страницу functions.php добавлен следующий код:) add_action(‘init’, ‘create_seminar_post_type’);

функция create_seminar_post_type(){ register_post_type(‘семинары’,

        array(
                'labels'=> array(
                        'name' => 'Seminars',
                        'singular_name' => 'Seminar',
                        'add_new' => 'Add New Seminar',
                        'add_new_item' => 'Add New Seminar',
                        'edit' => 'Edit Seminars',
                        'edit_item' => 'Edit Seminar',
                        'new_item' => 'New Seminar',
                        'view' => 'View Seminar',
                        'view_item' => 'View Seminar',
                        'search_items' => 'Search Seminars',
                        'not_found' => 'No Seminars found',
                        'not_found_in_trash' => 'No Seminars found in Trash',
                        'parent' => 'Parent Seminar',
                ),
                'supports' => array('title', 'editor', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'thumbnail', 'author', 'page-attributes'),
                'public' =>true,
                'taxonomies' => array('post_tag', 'category')
                )
    );
    register_taxonomy ('trt', 'seminars', array(
    'labels' =>array(
                'name' =>'Total Running Time',
                'singular_name' => 'Total Running Time',
                'search_items' => 'Search Total Running Time',
                'popular_items' => 'Popular Total Running Times',
                'all_items' => 'All Running Times',
                'parent_item' => 'Parent Running Time',
                'edit_item' => 'Edit Running Time',
                'update_item' => 'Update Running Time',
                'add_new_item' => 'Add New Running Time',
                'new_item_name' => 'New Running Time Name'
    ),
                'hierarchical' => true, 'label' => 'Total Running Time'));
    register_taxonomy ('discs-in-set', 'seminars', array(
    'labels' =>array(
                'name' =>'# of Discs in Set',
                'singular_name' => 'Total Discs in Set',
                'search_items' => 'Search Discs in Set',
                'popular_items' => 'Popular Discs in Set',
                'all_items' => 'All Discs in Set',
                'parent_item' => 'Parent Discs in Set',
                'edit_item' => 'Edit Discs in Set',
                'update_item' => 'Update Discs in Set',
                'add_new_item' => 'Add New Discs in Set',
                'new_item_name' => 'New Discs in Set'
    ),
    'hierarchical' => false,
    'public' => true,
    'show_ui' => true,
    'query_var' => 'discs-in-set',
    'show_tagcloud' => true,
    ));

}

и вот код, добавленный с циклом на нашей странице с одним семинаром (полученный из страницы single.php):

<?php $loop = new WP_Query( array( 'post_type' => 'seminars', 'posts_per_page' => 10 ) ); ?>
        <?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
        <?php the_title( '<h2 class="entry-title"><a href="' . get_permalink() . '" title="' . the_title_attribute( 'echo=0' ) . '" rel="bookmark">', '</a></h2>' ); ?>

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

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

  • Дон
Share
  1. спасибо за понимание — я не знал этикета. Но так как вы это подняли, как мне проголосовать за ответ? Я не вижу в этом ссылку…

    • 0
    • Ничего страшного, моя работа как модератора — помочь новым пользователям узнать, как здесь все устроено. Все мы когда-то были новичками. Вам понадобится 15 репутации, прежде чем вы сможете проголосовать; Я проголосовал за два ваших вопроса, так что теперь вы можете. И, пожалуйста, не забудьте выбрать лучший ответ на каждый из ваших вопросов; нажмите на галочку рядом с номером подсчета голосов слева от ответа, чтобы выбрать ответ, который вам больше всего нравится.

      • 0
    • Привет Rev, Спасибо за ваш ответ. Я перевариваю это сейчас и дам вам знать о моем прогрессе.

      • 0
  2. Для бита списка постов на приборной панели….

    http://codex.wordpress.org/Plugin_API/Action_Reference/manage_posts_custom_column

        // ADDS EXTRA INFO TO ADMIN MENU FOR PRODUCT POST TYPE
    add_filter("manage_edit-ve_products_columns", "voodoo_prod_edit_columns");
    add_action("manage_posts_custom_column", "voodoo_prod_custom_columns");
    
    function voodoo_prod_edit_columns( $columns ) {
    
        // Add the extra column for product categories instead of rebuilding the whole array
        $columns['prod_cat'] = "Product Category";
        $columns['description'] = "Excerpt";
    
        return $columns;
    }
    
    function voodoo_prod_custom_columns( $column ) {
        global $post;
        switch( $column ) {
            case "description":
                the_excerpt();
            break;
            case "prod_cat":
                echo get_the_term_list( $post->ID, 'product_category', '', ', ', '' );
            break;
        }
    }
    

    Я использую это, чтобы добавить 2 столбца к моему пользовательскому типу сообщений ve_products. в столбце описания отображается отрывок, в prod_cat отображается моя пользовательская таксономия (product_category). Избавиться от:

    $columns['description'] = "Excerpt";
    

    Убьет отрывок и внесет только таксономию. Вам просто нужно поменять свое имя налогоплательщика. А так же в первом фильтре свой СРТ (по ссылке которую я дал)


    Что касается вашего другого вопроса, вы просто хотите выплюнуть таксономию? Я не уверен, поэтому я просто попытаюсь ответить на то, что, как я думаю, вы спрашиваете.

                <?php   
                // Let's find out if we have taxonomy information to display   
                // Something to build our output in   
                $taxo_text = '';   
    
                // Variables to store each of our possible taxonomy lists   
                // This one checks for a Product Category classification   
                $prodcat_list = get_the_term_list( $post->ID, 'product_category', '', ', ', '' );
    
                // Add Product Category list if this post was so tagged   
                if ( '' != $prodcat_list )   
                $taxo_text .= $prodcat_list;
                ?>
    

    Я использую это для хранения своей таксономии (product_category). Я разместил это в верхней части цикла, над тем местом, где мне нужно отобразить фактический налог. Затем я могу выплюнуть это, используя:

    <?php echo $taxo_text; ?>
    

    Таким образом, большой блок кода загружает термины для product_category, а затем вывод таксономического текста выдает термины, он ведет себя так же, как и the_category. Вам просто нужно поменять свое налоговое имя, где у меня есть product_category

    • 0

Оставить ответ

You must login to add an answer.