Как удалить последнее сообщение с боковой панели в Wordpress?

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

Это мой код для боковой панели:

<div class="blog-sidebar">
<?php query_posts('showposts=5'); ?>
<?php while (have_posts()) : the_post(); ?>
    <div class="blog-sidebar-feature">
        <?php if ( has_post_thumbnail() ) { ?>
            <div class="blog-sidebar-image"><a href="<?php the_permalink() ?>" rel="bookmark" title=""><?php the_post_thumbnail('medium'); ?></a></div>
        <?php
        }
        ?>
        <div class="blog-sidebar-content">
            <p class="date"><?php the_time('F j, Y') ?></p>
            <h3 <strong><?php

    foreach((get_the_category()) as $category) { 
echo $category->cat_name . ' '; 
    } 
    ?></strong></h3>
    <h2 <p><a href="<?php the_permalink() ?>" rel="bookmark" title=""><?php the_title();         
    ?></a></p></h2><?php echo get_excerpt(166); ?>
        </div>
    </div>
<?php endwhile;?>
<br />
<?php wp_pagenavi(); ?>
</div>

и соответствующий код того, как блог отображается на домашней странице:

<div class="blog-sidebar">
    <div class="blog-sidebar-feature">
        <?php query_posts('orderby=date&order=DESC&showposts=2'); ?>
            <?php while (have_posts()) : the_post(); ?>
            <?php if ( has_post_thumbnail() ) { ?>
                <div class="blog-sidebar-image"><a href="<?php the_permalink() ?>" rel="bookmark" title=""><?php the_post_thumbnail('medium'); ?></a></div>
            <?php
            }
            ?>
            <div class="blog-sidebar-content">
                <p class="date"><?php the_time('F j, Y') ?></p>
            <h3 <strong><?php
    foreach((get_the_category()) as $category) { 
echo $category->cat_name . ' '; 
    } 
    ?></strong></h3>
                <h2 <p><a href="<?php the_permalink() ?>"    
    rel="bookmark" title=""><?php the_title(); ?></a></p></h2><?php echo get_excerpt(166); ?>
            </div>
        <?php endwhile;?>
    </div>

</div>
<div id="connect">
    <?php query_posts('page_id=1');
      while (have_posts()): the_post();
      the_content();
  endwhile;
  wp_reset_query(); ?>
</div>

Есть ли способ удалить с боковой панели только самое последнее сообщение, когда оно полностью отображается в основном контейнере? Заранее благодарю за любую помощь.


person Reibusu    schedule 14.05.2013    source источник


Ответы (2)


ОБНОВЛЕНИЕ V2

Итак, вам нужны последние сообщения, а не сообщение, которое в настоящее время отображается в основном контенте.

ОБНОВЛЕНИЕ V3:

Теперь это должно сработать. Мне пришлось изменить аргументы query_posts на массив, чтобы он работал.

Попробуй это сейчас:

<?
global $wp_query;
$skip_posts=array();
if (is_single()) //only exclude posts when single post is shown
$skip_posts[]=$wp_query->post->ID;
?>
<?php query_posts( array( 'showposts'=>5,'post__not_in'=>$skip_posts)); ?>
person user850010    schedule 14.05.2013
comment
Я предположил, что приведенный выше код находится в sidebar.php. Это там или где-то еще? - person user850010; 15.05.2013
comment
Да, это в sidebar.php. Я попробовал ваше предложение как в sidebar.php, так и в home-template.php (где также появляются избранные последние сообщения в блоге и сообщения на боковой панели), но, к сожалению, в обоих случаях боковая панель исчезла. - person Reibusu; 15.05.2013
comment
Попробуйте заменить оператор if на - if (! Is_front_page () &&! Is_home ()) - person user850010; 15.05.2013
comment
Теперь я получаю то, что ты хочешь. Я обновил ответ. Извините, что не поняла с первого раза :) - person user850010; 15.05.2013
comment
Я пропустил слово дублированный. Проверьте обновленный ответ. Извините. Английский - мой второй язык. - person user850010; 15.05.2013
comment
Я протестировал ваш код боковой панели на своем сайте разработки и добавил свой код. Я немного изменил код, чтобы теперь он работал на моем сайте без проблем. Попробуй это сейчас. - person user850010; 15.05.2013
comment
Идеально! Что я собираюсь сделать, так это поместить мой код смещения в home-template.php, чтобы последний пост не отображался на боковой панели на домашней странице, а поместил ваш в sidebar.php, чтобы люди, посетившие блог ( т.е. перешли от главной страницы), какие бы сообщения они ни читали, не отображаются на боковой панели. Вы потратили много лет, помогая мне с этим, я очень ценю это, спасибо! - person Reibusu; 16.05.2013

<?php query_posts('posts_per_page=5&offset=1'); ?>

Благодаря 850010 за всю помощь, я вернулся и посмотрел на правило смещения, и «массив» не понадобился. Обманчиво просто.

person Reibusu    schedule 15.05.2013
comment
Этот код пропускает последнее сообщение и на самом деле не решает вашу проблему с дублированием, когда вы переходите к любому более старому сообщению, как видно из av5theapiaryconz.avatar.net.nz/blog/upcycle/ - проверьте мой обновленный код v3 - person user850010; 15.05.2013