【发布时间】:2020-04-05 08:39:16
【问题描述】:
编辑:找到了我的旧代码,它有效,并以这种方式修复。还将使用插件添加自定义功能,以避免在下次主题更新时再次消失(感谢 Heba)。和代码:
function foo_modify_query_order( $query ) {
if (get_the_ID()==80) { $query->set( 'orderby', 'title' ); $query->set( 'order', 'ASC' ); } } add_action( 'pre_get_posts', 'foo_modify_query_order' );
所以,这应该是一个简单的任务,但我不知道为什么它现在不起作用。我已经尝试了所有方法,每个 Google 链接都是紫色的,所以现在我希望有人能告诉我它是什么,我做错了。
我应该首先提到它是一个 Divi 主题,但几个月前我确实让它工作了,但忘记了如何,我现在无法重新创建它。
我只是想按字母顺序 (A-Z) 对主要查询进行排序,但仅限于名为 recipes 的页面上。该网站将所有食谱及其博客帖子都作为帖子发布,但博客帖子按日期排序并显示在单独的页面上,效果很好。
但是当我尝试改变它时,奇怪的事情正在发生。如果我使用此代码,它确实有效,但博客页面也会按字母顺序排序,这是不应该的。
function foo_modify_query_order( $query ) {
if (is_archive()) {
$query->set( 'orderby', 'title' );
$query->set( 'order', 'ASC' );
}
}
add_action( 'pre_get_posts', 'foo_modify_query_order' );
这对我来说没有意义,因为它是帖子?在我尝试过的所有方法中,只有使用 is_archive() 才能排序。
如果我尝试让它首先检查特定页面,例如&& is_page('recipes'),我会收到错误消息。
如果我只添加 if (is_page('recipes')){ echo 'Recipes'; } 它可以工作,但如果我尝试在里面添加排序,我什么也得不到。
所以部分工作,但我不能将两者结合起来。这是Divi的问题还是我做错了?希望任何人都可以提供帮助,我现在已经尝试了很多不同的东西。干杯:)
【问题讨论】:
标签: php wordpress sorting posts