在主页上通过在帖子之间添加小工具来获取重复帖子

时间:2012-08-11 作者:Robert

我试图在主页上的帖子之间添加一个小部件区域。在第一篇帖子之后,我让他们显示我想要他们的位置。问题是前两篇文章重复了。显示在新窗口小部件区域上方的同一帖子也显示在窗口小部件区域之后。如果我调用widget代码,只放置常规的广告代码,那么帖子就不会重复。只有在我调用小部件时才会发生这种情况。我不知道我还能怎么解决这个问题。

下面是我的代码在索引中的样子。php

<?php $postnum = 1; $showads = 1; $counter = 1; ?>
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

        <article class="article">
        <div class="post-single post_box">
            <header>
            <div class="headline_area">
            <h2 class="entry-title"><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
        <?php if($options[\'mts_headline_meta\'] == \'1\') { ?>
            <div class="headline_meta">
            <p class="theauthor"><?php _e(\'By \', \'mythemeshop\'); the_author_posts_link(); ?></p>
            <p class="themeta"><span class="thetime"><?php the_time(\'F j, Y\'); ?></span><span class="thecategories"><?php the_category(\' \') ?></span><span class="thecomments"><a href="<?php comments_link(); ?>" rel="nofollow"><?php comments_number(\'No comments\',\'1 Comment\',\'% Comments\'); ?></a></span></p>
            </div>
        <?php } ?>
            </div><!--.headline_area-->
            </header>
            <?php if($options[\'mts_thumbnails\'] == \'1\') { ?>
            <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="nofollow"><?php if ( has_post_thumbnail() ) { echo \'<div class="featured-thumbnail">\'; the_post_thumbnail(\'thumbnail\', array(\'title\' => \'\')); echo \'</div>\'; } ?></a>
            <?php } ?>
            <div class="format_text entry-content">
                <?php the_excerpt(); ?>
                <p><a href="<?php the_permalink() ?>" class="readmore" rel="nofollow">Read More...</a></p>
            </div>
        </div><!--.post-single-->
        </article>

        <?php if ($postnum == $showads) { ?>
<?php if ( !function_exists(\'dynamic_sidebar\') || !dynamic_sidebar("Hot-Widget") ) : ?><?php endif; ?>
<?php } $postnum++; ?>

    <?php endwhile; else: ?>
如果我在下面两行之间添加了一个普通的广告代码,那么帖子不会重复,但每当我调用小部件时,帖子就会重复。

<?php if ($postnum == $showads) { ?>
<?php if ( !function_exists(\'dynamic_sidebar\') || !dynamic_sidebar("Hot-Widget") ) : ?>         <?php endif; ?>
<?php } $postnum++; ?>
下面是我的页面现在的样子http://carrenomedia.com/rp

以下是最近/流行帖子小部件的代码链接http://pastebin.com/YbMhKAMV

1 个回复
SO网友:amit

我想你应该用wp_reset_postdata(); 小部件区域后的函数。

这种行为的可能原因是小部件本身使用了两个wp_query(); 功能。可能是修改全局$post 主查询实际使用的数据。

我想是打电话来的wp_reset_postdata(); 在小部件解决问题后立即运行。

参考-法典wp_reset_postdata()

在循环通过单独的查询后,此函数将$post全局恢复到主查询中的当前post。

结束

相关推荐

在短码中进行分页。GET_NEXT_POSTS_LINK不起作用,但GET_PREVICE_POSTS_LINK在其旁边工作正常

我正在尝试使用一个短代码输出一个自定义post类型的归档文件。除了get\\U next\\U posts\\U链接部分外,一切正常。奇怪的是,它就在一个完美工作的get\\u previous\\u posts\\u链接旁边。下面是函数function output_tips() { global $paged; $paged = get_query_var(\'paged\') ? get_query_var(\'paged\') : 1; $args = array( \'p