我有一个非常奇怪的问题,我正在更新的网站。。。
我想做的就是让帖子按降序排列,而不是随机排列。我有下面的代码,但当您将其从“rand”更改为“desc”时,它只是默认按“asc”顺序拉入帖子。我不知道为什么。此外,如果将“orderby”更改为“order”,则默认为升序。。。我在主题中做了一个搜索,看看发生了什么,但根本没有列出的地方。。。有人能把我引向正确的方向吗?
<?php
$args= array(
\'post_type\' => \'waiting-families\',
\'orderby\' => \'rand\'
);
// The Query
$the_query = new WP_Query( $args );
// The Loop
if (have_posts() ):
while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<div <?php post_class() ?> id="post-<?php the_ID(); ?>">
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h3>
<?php if ( has_post_thumbnail()) { ?>
<a href="<?php the_permalink(); ?>"><?php echo get_the_post_thumbnail($id, \'thumbnail\', array(\'class\' => \'alignleft\',\'style\' => \'width: 150px;height: 150px;padding: 3px; background: #f0f0f0; border: 1px solid #65C8C6;\')); ?></a>
<?php } ?>
<?php my_excerpt(55); ?>
<p class="postmetadata">
<?php edit_post_link(\'Edit\', \'\', \' | \'); ?>
</p>
</div>
<?php endwhile;
else: echo \'<p style="text-align: center; font-size:20px; font-weight: 700; color: #65c8c6;">More Families to Come.</p>\';
endif;
?>
<?php // Reset Post Data
wp_reset_postdata(); ?>
最合适的回答,由SO网友:Pieter Goosen 整理而成
orderby
不接受值ASC
或DESC
. 这些是参数的可接受值order
. 正在更改\'orderby\' => \'rand\'
到\'order\' => \'ASC\'
应足够,并应按规则工作
如前所述,
if (have_posts() ):
应该是
if ($the_query->have_posts() ):
除了这个小小的差异,你的代码必须工作
如果这不能解决您的问题,请查看您的函数。php的任何实例pre_get_posts
. 我思考的原因是,pre_get_posts
不仅更改主查询,而且还更改WP_Query
. 你have to 包括条件标记is_main_query()
仅以主查询为目标,否则pre_get_posts
将干扰的实例WP_Query
其他资源: