2013-05-14 4 views
1

На первой странице и на странице блога - на боковой панели отображается последняя публикация, которую я считаю не очень хорошо продуманной, с тем же сообщением, которое было расширено на главной странице.Как удалить последнее сообщение с боковой панели в 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> 

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

ответ

1

UPDATE V2

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

UPDATE 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)); ?> 
+0

Я предположил, что приведенный выше код был в sidebar.php. Это где-то в другом месте? – user850010

+0

Да, это в sidebar.php. Я попробовал ваше предложение как в sidebar.php, так и в home-template.php (где также появляются последние сообщения в блоге и сообщения в боковой панели), но, к сожалению, он заставил боковую панель исчезнуть в обоих. – Reibusu

+0

Попробуйте заменить if statement - if (! Is_front_page() &&! Is_home()) – user850010

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

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

+0

Этот код пропускает последнее сообщение и на самом деле не затрагивает вашу дублируемую проблему, когда вы переходите на любое более раннее сообщение, как видно из http://av5theapiaryconz.avatar.net.nz/blog/upcycle/hexagonal-honeyjar-spice-rack/ - проверить обновленный код v3 – user850010

Смежные вопросы