Дублирование постов на главной.

В общем суть проблемы.
на главной страницы вовыжу сначала 4 поста последних новостей в одной колонке а потом ещё в двух колонках вывожу последние новости из разнух рубрик. Проблема состоит в том что последние новости дублируются. Как можно запретить вывод дублирующихся постов.

Хороший вопрос! Пришлось погуглить. Результат особого восторга не вызвал.

http://wordpress.org/support/topic/196135?replies=10
http://weblogtoolscollection.com/archives/2008/05/17/how-to-avoid-duplicate-posts/

Хороший вопрос! Пришлось погуглить. Результат особого восторга не вызвал.

http://wordpress.org/support/topic/196135?replies=10

Предложенное здесь мне понравилось… попробую воплотить.

Спасибо Ю.Б. за предоставленный материал.:)

А теперь о том как решилась моя проблемка. По совету Ю.Б. прочитал вот это http://weblogtoolscollection.com/archives/2008/05/17/how-to-avoid-duplicate-posts/ изначально планировал использовать другой предложенный вариант но на версии 2.7 некорректно отобразился.
У себя же на сайте, на ГЛАВНОЙ, мне нужно было выводить 4 последних поста не важно из какой категории, просто 4 последних. И из 3-х отдельных рубрик по одному посту. А вот собственно код:

для начала вывожу 4 последних поста:

<div style="color:#000;">
<h2 style="margin:10px 0 0 10px; font-size: 13px; font-weight:bold; color:#000;">Последние новости</h2>
<?php
    function post_strip($where) {
    global $myPosts, $wpdb;
    $where .= " AND $wpdb->posts.ID not in($myPosts) "; 
    return $where;
    }
?>
<?php 
    global $myPosts;
    $myPosts = '';
?>
<div style="padding:5px 0 10px 0;margin:0 10px 0 10px;color:#000;font-family:Arial,Verdana,Helvitica,sans-serif;">
    <?php
    $my_query = new WP_Query();
    $my_query->query('showposts=4'); //'showposts=4' 4-ре последних поста
    if ($my_query->have_posts()) : while ($my_query->have_posts()) : $my_query->the_post(); ?>
    <?php $myPosts .= $post->ID . ","; ?>

<h1  class="title"><a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h1>
<div class="date">Дата: <?php the_time('d M Y'); ?></div>
<div class="cover">  
    <div class="entry">
        <?php the_content('Читать далее &raquo;'); ?>
    </div>
</div>
<div class="clear"></div>
<?php endwhile; endif; ?>
</div>
</div>

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

<div style="color:#000;">    
    <h2 style="margin:10px 0 0 10px; font-size: 13px; font-weight:bold; color:#000;">Рубрика 1</h2>
    <?php $myPosts .= "0" ?>
    <?php add_filter('posts_where', 'post_strip'); ?> //добавляем фильтр постов
    <div style="padding:5px 0 10px 0;margin:0 10px 0 10px;color:#000;font-family:Arial,Verdana,Helvitica,sans-serif;">
        <?php 
        $my_query = new WP_Query('showposts=1&cat=24'); //'showposts=1&cat=24' 1-ин пост из 24 категории
        while ($my_query->have_posts()) : $my_query->the_post();?>
                <h1  class="title"><a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a>    </h1>
                  <div class="date">Дата: <?php the_time('d M Y'); ?></div>
                <div class="cover">
                   <div class="entry">
                                  <?php the_content('Читать далее &raquo;'); ?>
                           </div>
                </div>
        <div class="clear"></div>
        <?php endwhile; ?>
    </div>
</div>
    <?php remove_filter('posts_where', 'post_strip'); ?>//удаляем фильтр постов
<div class="clear"></div>

Пишу так подробно для того чтобы даже новичек смог разобраться…

Anonymous
Отправить
Ответ на: