связанные сообщения - удаление тегов из определенного типа сообщений


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

    <?php
        $orig_post = $post;
        global $post;
        $tags = wp_get_post_tags($post->ID);

        if ($tags) {
            $tag_ids = array();
            foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
            $args=array(
                'tag__in' => $tag_ids,
                'post__not_in' => array($post->ID),
                'posts_per_page'=>5, // Number of related videos that will be shown.
                'caller_get_posts'=>1
            );

            $my_query = new wp_query( $args );
            if( $my_query->have_posts() ) {
                echo '<section id="related-videos"><h3><span>Related Videos</span></h3><ul>';

                while( $my_query->have_posts() ) {
                $my_query->the_post(); ?>

                <li>
                    <a class="related-thumb" href="<? the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_post_thumbnail('related-thumb'); ?></a>
                    <section class="related-content">
                        <a href="<? the_permalink()?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a>
                    </section>
                </li>

                <? }

                echo '</ul></section>';
            }
        }

        $post = $orig_post;
        wp_reset_query();

Мне интересно, есть ли способ, которым я могу извлекать теги только из определенного типа сообщений. Может быть, добавить что-то вроде 'post_type=videos' где-нибудь? Хотя не уверен, где именно. Кто-нибудь может мне помочь? Спасибо.

Author: J82, 2011-02-20

3 answers

Что-то точно такое же, как 'post_type' => 'videos' где-то в вашем массиве $args:)

 1
Author: Michal Mau, 2011-02-20 19:38:53

Я не уверен в вашем описании - вы хотите отображать это только для сообщений определенного типа или отображать только сообщения определенного типа как связанные?

Ваше предположение точно, запрос принимает аргумент post_type, см. Параметры типа и статуса в Кодексе.

 2
Author: Rarst, 2011-02-20 11:36:19

Я не смог найти способ фильтрации по типу записи при получении списка тегов. Я бы сделал что-то вроде этого:

function get_tags_per_post_type() {
    $post_list = get_posts(array('post_type' => ''));
    $tag_list = array();
    foreach($post_list as $current_post) {
        $current_tag_list = wp_get_post_tags($current_post->ID);
        foreach ($current_tag_list as $tag) {
            $tag_list[] = $tag->term_id;
        }
    }

    $tag_list = array_unique($tag_list);
    return $tag_list;
}

При этом извлекается список идентификаторов терминов тегов, относящихся к определенному типу записи. Если вам нужен список объектов тегов, то нам нужно будет создать функцию, которая идентифицирует повторяющийся объект тегов, добавляемый в $tag_list.

НТХ

 0
Author: rexposadas, 2011-02-20 08:01:34