You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义分类法Country下文章按标题排序,内置分类按日期排序的问题

问题分析与修复方案

咱们一步步拆解问题哈:

  1. 钩子与函数名不匹配:你注册动作时写的是theme_taxonomy_order,但实际定义的函数名是domino_taxonomy_order,这会导致钩子根本没法正确触发(不过看你说两类分类都按标题排,可能是代码笔误?不管怎样先把这个统一)。

  2. 条件判断错误:is_country不是WordPress的合法条件函数,要检测是否在自定义的Country分类归档页面,得用is_tax('country')——这个函数接受分类法的slug作为参数,正好对应你自定义的country分类法。

  3. 多余的返回值:pre_get_posts是动作钩子,不需要返回$query,直接修改$query对象就行,非主查询的时候直接return退出函数即可。

给你修正后的代码:

add_action( 'pre_get_posts', 'domino_taxonomy_order' );
function domino_taxonomy_order( $query ) {
    // 只处理主查询,非主查询直接跳过
    if ( ! $query->is_main_query() ) {
        return;
    }

    // 仅在Country分类归档页面修改排序规则
    if ( is_tax( 'country' ) ) {
        $query->set( 'orderby', 'title' );
        $query->set( 'order', 'ASC' );
    }
    // 内置Categories分类保持默认日期排序,无需额外处理,WordPress会自动沿用默认规则
}

简单解释下:

  • 先把钩子和函数名统一,确保代码能被正确触发;
  • 用is_tax('country')精准锁定自定义Country分类的归档页,只有在这里才修改排序逻辑;
  • 内置Categories分类因为没做任何干预,会保持WordPress默认的按发布日期降序排序(最新文章在前),完全符合你的需求。

这样修改后,Country分类下的文章会按标题升序排列,Categories分类下的文章依然按日期排序啦。

内容的提问来源于stack exchange,提问作者Maria Anagnostou

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:11:34