Связанный виджет сообщений или плагин необходимы

Я ищу что-то как, они используют здесь:

http://www.jennyreviews.com/as-seen-on-tv/triple-joint-formula/

Посмотрите под "обзорами сопутствующего товара"

Я проверил источник, но не мог найти сменный код перечисленным. Возможно, это - виджет?

0
31.08.2010, 21:23
7 ответов

@Scott B,

Похоже, что они используют связанный запрос сообщений на основе категории. Когда единственный Объект (сообщение) отображается, запрос ищет, идентификатор категории затем показывает сообщения от той же категории.

Добавьте следующий код к своей боковой панели или даже к нижней части single.php в зависимости от того, где Вы хотите показать "Связанные Сообщения"

<!--Begin Related Posts-->
    <?php
        if ( is_single() ) :
        global $post;
        $categories = get_the_category();
        foreach ($categories as $category) :
        $posts = get_posts('numberposts=4&exclude=' . $GLOBALS['current_id'] . '&category='. $category->term_id);
        //To change the number of posts, edit the 'numberposts' parameter above
        if(count($posts) > 1) {
    ?>

    <div class="widget" id="more-category">
    <h3 class="widgettitle"><?php _e('More in',''); ?> &#8216;<?php echo $category->name; ?>&#8217;</h3>
    <ul>
    <?php foreach($posts as $post) : ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php endforeach; ?>
    </ul>
    </div>

    <?php } ?>

<?php endforeach; ?>
<?php endif; ?>

<!--/related posts-->

То, что это делает, сначала получает категорию текущего показавшего сообщения, опуская текущий объект от запроса, затем проверяя, чтобы удостовериться, что в той категории существует больше чем 1 сообщение.

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

<div class="widget" id="more-category">
    <h3 class="widgettitle"><?php _e('More in',''); ?> &#8216;<?php echo $category->name; ?>&#8217;</h3>
    <ul>
    <?php foreach($posts as $post) : ?>
    <li><?php the_post_thumbnail(); ?><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
    <?php endforeach; ?>
    </ul>
    </div>
1
19.02.2020, 23:40
  • 1
    из-за некоторой причины это отображает связанную область сообщений дважды: { –  Ayaz Malik 19.04.2012, 17:40

следование маленькому функциональному связанному со списком сообщению через теги

// related post with wordpress-tags
// wordpress > 2.3
function fbbl_related_posts($limit = 5) {
    global $wpdb, $post, $table_prefix;

    if ($post->ID) {
        $retval = '<ul>';
        // Get tags
        $tags = wp_get_post_tags($post->ID);
        $tagsarray = array();
        foreach ($tags as $tag) {
            $tagsarray[] = $tag->term_id;
        }
        $tagslist = implode(',', $tagsarray);

        // Do the query
        $q = "SELECT p.*, count(tr.object_id) as count
            FROM $wpdb->term_taxonomy AS tt, $wpdb->term_relationships AS tr,     $wpdb->posts AS p WHERE tt.taxonomy ='post_tag' AND tt.term_taxonomy_id = tr.term_taxonomy_id AND tr.object_id  = p.ID AND tt.term_id IN ($tagslist) AND p.ID != $post->ID
                AND p.post_status = 'publish'
                AND p.post_date_gmt < NOW()
            GROUP BY tr.object_id
            ORDER BY count DESC, p.post_date_gmt DESC
            LIMIT $limit;";

        $related = $wpdb->get_results($q);
        if ( $related ) {
            foreach($related as $r) {
                $retval .= '<li><a rel="nofollow" title="' . wptexturize($r->post_title) . '" href="' . get_permalink($r->ID) . '">' . wptexturize($r->post_title) . '</a></li>';
        }
    } else {
        $retval .= '<li>' . __('no related posts', TEXTDOMAIN) . '</li>';
        } $retval .= '</ul>';

        echo $retval;
    }

    return;
}

alternativ можно использовать категорию:

/**
 * related post with category
 * @param: int $limit limit of posts
 * @param: bool $catName echo category name
 * @param: string $title string before all entries
 * Example: echo fb_cat_related_posts();
 */
if ( !function_exists('fb_get_cat_related_posts') ) {
    function fb_get_cat_related_posts( $limit = 5, $catName = FALSE, $title = '<h3>&Auml;hnliche Beitr&auml;ge</h3>' ) {
        global $post;

        $limit = (int) $limit;
        $output  = '';
        $output .= $title;

        $category = get_the_category();
        $category = (int) $category[0]->cat_ID;

        if ( $catName )
            $output .= __( 'Category: ', FB_BASIS_TEXTDOMAIN ) . get_cat_name($category) . ' ';

        $output .= '<ul>';

        $args = array(
            'numberposts' => $limit + 1,
            'category' => $category,
        ); 

        $recentposts = get_posts( $args );
        foreach($recentposts as $catpost) {
            if ($catpost->ID !== $post->ID) {
                setup_postdata($catpost);
                $output .= '<li><a href="' . get_permalink($catpost->ID) . '">' . get_the_title($catpost->ID) . '</a></li>';
            }
        }

        $output .= '</ul>';

        return $output;
    }
}
1
19.02.2020, 23:40

"Еще один Связанный Плагин Сообщений" должен сделать то, что Вы хотите. Просто настройте связанный шаблон сообщения для отображения миниатюры сообщения и заголовка.

0
19.02.2020, 23:40

Я использую плагин под названием Подобные Сообщения, чтобы сделать точно, что Вы после. Как этот http://www.australianmusichistory.com/this-month-in-australian-music-september/

Это имеет некоторые хорошие функции форматирования, которые позволяют Вам отображать миниатюры и т.д.

0
19.02.2020, 23:40

Как автор еще одного Связанного Плагина Сообщений, я, конечно, рекомендую тот плагин. :) (Благодаря Steve и Doug для указания на это также.) Обратная связь, которую я получаю снова и снова, - то, что "связанные" результаты, полученные от YARPP, имеют тенденцию лучше отражать интуитивное понятие "связанности", в основном из-за алгоритма YARPP, смотрящего на не только совместно использованные категории, но также и совместно использованные теги, совместно использованные ключевые слова в заголовке и совместно использованные ключевые слова в содержании.

Учебное руководство на пользовательской упомянутой функциональности шаблонной обработки доступно здесь. Если у Вас есть какие-либо вопросы, получающие YARPP, интегрированный в Вашей установке, я (и многие другие пользователи YARPP) могу помочь на разделе форумов wordpress.org для YARPP.

0
19.02.2020, 23:40

Простой плагин Тегов предлагает 'Связанные сообщения' функциональность на основе тегов сообщения. Существует способ настроить шаблон того, как связанные сообщения показывают. Не уверенный, если можно взять его до дисплея изображение сообщения, но это уверено стоящий попытки.

0
19.02.2020, 23:40

Я здесь для указания на ошибку в коде, который показывает @Scott B.

Глобальный $post является на самом деле массивом что использование WordPress для отображения данных по блогу. но в этом коде значение массива в переменной $post переходит к последнему посту в текущей категории. таким образом, после успешного дисплея списка сообщений. когда Вы будете видеть комментарии, это всегда будет для последнего сообщения, упомянутого в списке. таким образом, при посещении первого сообщения из текущей категории поле комментариев будет иметь последнее сообщение в недавно сгенерированном списке сообщений. После продумывания немного меня шрифт решение этого и добавил другую переменную для хранения глобального массива $post. затем в конце я присвоил значения назад глобальному $post. таким образом глобальное сообщение получило его текущие значения назад и так корректное поле комментария. Вот исправленный код, если кому-либо было нужно.

<?php
////////////////////////////////////////////////////////////////
// THE CODE FOR RELATED ARTICLES FROM CURRENT CATAGORY STARTS //
////////////////////////////////////////////////////////////////

if ( is_single() );
global $post;
$current_post = $post;

$category = get_the_category($post->ID);

    $posts = get_posts  (   'numberposts=5&exclude=' 
                    . $GLOBALS['current_id'] 
                    . '&category='
                    . $category->term_id
                    . '&post='
                    . $post->term_id
                );

//To change the number of posts, edit the 'numberposts' parameter above

if(count($posts) > 1) 
{
?>
<div class="widget more-category">
    <h2>
        Related Articles
    </h2>
    <ul>
<?php       
        foreach($posts as $post)
        { 
?>
            <li>
                <a href="<?php the_permalink(); ?>">    
                    <?php the_title(); ?>   
                </a>
            </li>
<?php 
        } 
?>
    </ul>
</div>
<?php 
} 

$post = $current_post;
//////////////////////////////////////////////////////////////
// THE CODE FOR RELATED ARTICLES FROM CURRENT CATEGORY ENDS //
//////////////////////////////////////////////////////////////
?>
2
19.02.2020, 23:40

Теги

Похожие вопросы