Optimizing the blog loop

时间:2015-09-03 作者:Paweł Skaba

我有这样的帖子循环:

 <?php
global $post;
$post = $post_object;
setup_postdata( $post );
$paged = (get_query_var(\'paged\')) ? get_query_var(\'paged\') : 1;

query_posts(array(
    \'post_type\'      => \'post\', // You can add a custom post type if you like
    \'paged\'          => $paged,
    \'posts_per_page\' => 1
));

if ( have_posts() ) : ?>

<?php while ( have_posts() ) : the_post(); ?>

                                <div class="row single-post">
                                <div class="col-lg-2">
                                        <div class="date"><?php the_time(\'d.m.Y\'); ?></div>
                                </div>
                                <div class="col-lg-9 content">
                                    <?php the_post_thumbnail(\'post-thumbnail\', array( \'class\' => "img-responsive post-image")); ?>
                                    <h2><?php echo get_the_title(); ?></h2>
                                    <p class="single-content"><?php the_excerpt(); ?></p>
                                    <div class="post-meta">
                                            <a href="<?php the_permalink(); ?>" title="Czytaj więcej" class="read-more">>> Czytaj więcej..</a>
                                            <p>Kategorie wpisu: <?php $category = get_the_category(); if($category[0]){ echo \'<a href="\'.get_category_link($category[0]->term_id ).\'">\'.$category[0]->cat_name.\'</a>\'; }    ?></p>
                                    </div>
                                </div>
                            </div>

<?php endwhile; wp_reset_postdata(); ?>

    <div class="center"><?php my_pagination(); ?></div>

<?php else : ?>

        <div class="center">Nope:( no posts yet.</div>

<?php endif; ?>
问题是,我能以某种方式优化它吗?我需要使用设置/重置postdata,因为我使用它来生成最常查看的帖子列表。。谢谢

1 个回复
SO网友:Maikal

首先:do not use query_posts

使用get_postsnew WP_Query 相反

如果你想只显示浏览次数最多的帖子,你需要添加操作(例如wp)检查你是否在单个帖子页面上,并更新该帖子元views (+1)。然后你可以做这样的事情

$topViewedPosts = new WP_Query( array(
    \'post_type\' => \'post\',
    \'meta_key\' => \'views\',
    \'orderby\' => \'meta_value_num\', // sort by views
    \'order\' => \'DESC\', // sort 3 - 2 - 1
    \'posts_per_page\' => 5
) );
if( $topViewedPosts->have_posts() )
    while( $topViewedPosts->have_posts() ) : $topViewedPosts->the_post();
        // your content here
    endwhile;
endif; wp_reset_postdata();
也许我误解了你在找什么。。尽量解释得比。。

相关推荐

如何修改WP_INCLUDE/BLOCKS/LATEST_posts.php

我是WordPress开发的初学者,希望得到一些帮助。我在一个简单的WordPress网站上工作。基本上,用户希望在主页上显示最新的帖子。我使用了最新帖子块,并将其设置为显示整个帖子内容,现在用户不希望帖子标题链接到单个帖子页面(因为帖子的内容显示在主页上)。如何安全地修改模板文件,使其像h2标记一样使用,而不是在主题中使用的href标记。我知道您可以创建子主题并修改wp_content 文件,但我不确定如何处理中的文件wp_include. 我读到一些关于修改functions.php 但我不确定,如果