所有帖子+特定帖子的单一帖子显示列表

时间:2013-02-17 作者:Paweł Skaba

我想在单柱上展示三件事:

一般所有帖子的列表,单个帖子标题,内容,我现在所取得的成绩并不令人满意,因为我正在显示所有帖子(效果还可以),但第二部分(仅显示特定的帖子标题和内容)不起作用,因为它只显示最新的帖子。

例如:

我有两个帖子,分别是“关于它的新闻”和“电视剧”。关于电视的帖子是最新的。点击新闻后,我将在顶部看到所有帖子,并将其作为主要部分-标题和新闻内容。现在,使用我的解决方案,它以最新帖子的形式显示电视连续剧。。

如何实现我的解决方案?

这是我当前的代码:

<div class="wrapper">

    <div class="center">
        <div class="sub-menu-1">
            <a href="#" title="O nas" class="about-us"> O nas </a>
            <a href="#" title="Oferta" class="offer"> Oferta</a>
            <div class="clear"></div>
        </div>

        <div class="news-slider">
            <a href="#" title="Nowsze wpisy" class="arrow-left" id="mycarousel-prev"></a>

            <div class="news-content">

                <ul id="mycarousel" class="jcarousel-skin-tango">
                    <?php rewind_posts(); ?>
                    <?php query_posts(\'post_type=post&posts_per_page=-1\'); ?>
                    <?php if(have_posts()) : while(have_posts()) : the_post(); ?>
                        <li>
                            <p class="post-date"><?php the_time(\'j F Y\') ?></p>
                            <p class="separator"></p>
                            <p class="post-title"><a href="<?php the_permalink(); ?>"
                                                     title="<?php printf(esc_attr__(\'Odsyłacz do %s\', \'sp3-rybnik\'), the_title_attribute(\'echo=0\')); ?>"
                                                     rel="bookmark"><?php the_title(); ?></a></p>
                        </li>

                    <?php endwhile;
                    else: ?>
                        <?php wp_reset_query(); ?>
                        <h4>404 - brak strony...</h4>
                        <p>Wielka otchłań internetu połknęła wskazaną stronę - wyszukaj interesującą Cię treść
                            korzystając z
                            menu.</p>
                    <?php endif; ?>

                </ul>

            </div>

            <a href="#" title="Starsze wpisy" class="arrow-right" id="mycarousel-next"></a>

            <div class="clear"></div>
        </div>
    </div>

</div>

<div class="content-single">
    <div class="content-single-entry">
        <?php rewind_posts(); ?>
        <?php query_posts(\'post_type=post&posts_per_page=1\'); ?>
        <?php if(have_posts()) : while(have_posts()) :
        the_post(); ?>
        <h2><?php the_title(); ?></h2>
        <p class="separator"></p>
        <p class="post-date"><?php the_time(\'j F Y\') ?></p>


        <div id="scrollbar1">
            <div class="scrollbar">
                <div class="track">
                    <div class="thumb">
                        <div class="end"></div>
                    </div>
                </div>
            </div>
            <div class="viewport">
                <div class="overview">

                    <?php the_content(); ?>
                    <?php endwhile;
                    else: ?>
                        <?php wp_reset_query(); ?>
                        <h4>404 -brak strony...</h4>
                        <p>Wielka otchłań internetu połknęła wskazaną stronę - wyszukaj interesującą Cię treść
                            korzystając z menu.</p>
                    <?php endif; ?>
                </div>
            </div>
        </div>
    </div>
</div>

1 个回复
SO网友:Milo

加载单个帖子模板时,WordPress已经在数据库中查询了该帖子。当你打电话的时候query_posts(\'post_type=post&posts_per_page=1\');, 然后运行循环,只需加载并输出一篇文章,默认情况下,这将是最新的文章。它还具有覆盖原始主查询的副作用。

你不需要,也不应该打电话query_posts 在模板中。

要在当前查看的单个帖子旁边加载其他帖子,use WP_Query, 并保持主查询不变。

// load and display all posts
// setting post_type is unnecessary, it will default to post
$all_posts = new WP_Query( array( \'posts_per_page\' => -1 ) );
while( $all_posts->have_posts() ):
    $all_posts->the_post();
    // your markup for all posts
endwhile;

// reset the global post variable
wp_reset_postdata();

// now output the single post
// no need for a query, the post data already exists
// in the global $wp_query
while( have_posts() ):
    the_post();
    // your markup for the single post
endwhile;

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post