如何在不使用‘QUERY_POSTS’的情况下按修改日期对帖子进行排序?

时间:2012-04-23 作者:its_me

我这里有一个基本wordpress主题模板示例。首先,请快速查看一下,了解一下您的想法。

<?php
get_header(); ?>

    <div id="primary">
      <div id="content" role="main">

      <?php if ( have_posts() ) : ?>

        <?php /* Start the Loop */ ?>
        <?php while ( have_posts() ) : the_post(); ?>

          <?php
            /* Include the Post-Format-specific template for the content.
             * If you want to overload this in a child theme then include a file
             * called content-___.php (where ___ is the Post Format name) and that will be used instead.
             */
            get_template_part( \'content\', get_post_format() );
          ?>

        <?php endwhile; ?>

        <?php reddle_content_nav( \'nav-below\' ); ?>

      <?php else : ?>

        <article id="post-0" class="post no-results not-found">
          <header class="entry-header">
            <h1 class="entry-title"><?php _e( \'Nothing Found\', \'reddle\' ); ?></h1>
          </header><!-- .entry-header -->

          <div class="entry-content">
            <p><?php _e( \'It seems we can&rsquo;t find what you&rsquo;re looking for. Perhaps searching can help.\', \'reddle\' ); ?></p>
            <?php get_search_form(); ?>
          </div><!-- .entry-content -->
        </article><!-- #post-0 -->

      <?php endif; ?>

      </div><!-- #content -->
    </div><!-- #primary -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>
在最后修改日期之前订购帖子的最简单方法是添加以下内容:

<?php query_posts($query_string . \'&orderby=modified&order=desc\'); ?>
正上方:

<?php while ( have_posts() ) : the_post(); ?>
但那不是我想要的。有人告诉我get_posts()WP_Query() (see), 比query_posts(). 我不知道如何根据建议修改上述代码。

如果有人能告诉我应该如何使用get_posts()WP_Query() w、 r.t上述基本模板。谢谢

1 个回复
最合适的回答,由SO网友:Scott 整理而成

您尚未指定要将此更改应用到的位置,因此我仅将其应用于主页。您可以更改以适应此筛选器适用的位置:

<?php
function wpse10691_alter_query( $query )
{
    if ( $query->is_main_query() && ( $query->is_home() || $query->is_search() || $query->is_archive() )  )
    {
        $query->set( \'orderby\', \'modified\' );
        $query->set( \'order\', \'desc\' );
    }
}
add_action( \'pre_get_posts\', \'wpse10691_alter_query\' );
?>
将代码放入主题函数中。php或将其打包成插件。

结束

相关推荐

wpquery via ajax

我可以重新加载我的页面,让php编写一个新的wpquery 并替换页面上的内容,但我真的不想处理新的页面加载。有没有一种简单的方法wpquery 字符串(例如\"p=7\") 通过ajax? 即使我必须创建一个定制的php页面来进行查询,也没关系。我对wordpress还是新手,所以我想在我开始走“风景”路线之前,确保没有简单的方法可以做到这一点。Thanks.