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

如何修复WordPress后台自定义分类法术语默认关联错误文章类型的问题

如何修复WordPress后台自定义分类法术语默认关联错误文章类型的问题

这个问题我之前踩过坑!核心原因确实如你所想:WordPress的edit.php页面如果没有在URL参数里指定post_type,就会默认使用内置的post类型来加载内容。下面给你两个实用的解决办法,按需选择:

方案1:通过请求拦截自动修正post_type(推荐)

这个方案不需要修改任何链接,而是在WordPress解析后台请求时自动补全正确的post_type参数,哪怕用户手动输入不带post_type的URL也能生效。

添加以下代码到你的插件文件中:

add_action( 'parse_request', 'fix_domain_taxonomy_post_type_in_admin' );
function fix_domain_taxonomy_post_type_in_admin( $wp ) {
    // 仅针对后台的edit.php页面生效
    if ( is_admin() && $wp->request === 'edit.php' ) {
        // 检查URL中存在domain分类参数,但未指定post_type
        if ( isset( $_GET['domain'] ) && ! isset( $_GET['post_type'] ) ) {
            // 强制设置post_type为自定义文章类型model
            $_GET['post_type'] = 'model';
            // 同步修正WP的查询变量,确保系统正确识别
            $wp->query_vars['post_type'] = 'model';
        }
    }
}

方案2:修改分类术语列表的链接,默认带上post_type参数

如果你更倾向于从源头修改链接,让后台生成的URL直接包含正确的post_type参数,可以使用WordPress提供的过滤器(WordPress 5.8+适用):

add_filter( 'term_edit_posts_link_query_args', 'add_post_type_to_domain_term_links', 10, 2 );
function add_post_type_to_domain_term_links( $args, $term ) {
    // 仅针对domain分类法的术语链接生效
    if ( $term->taxonomy === 'domain' ) {
        // 追加post_type参数为model
        $args['post_type'] = 'model';
    }
    return $args;
}

兼容旧版WordPress(低于5.8)

如果你的WordPress版本比较旧,term_edit_posts_link_query_args过滤器不存在,可以用更通用的admin_url过滤器来修改链接:

add_filter( 'admin_url', 'modify_domain_admin_links', 10, 3 );
function modify_domain_admin_links( $url, $path, $blog_id ) {
    // 仅处理edit.php链接且包含domain参数的情况
    if ( strpos( $path, 'edit.php' ) !== false && strpos( $url, 'domain=' ) !== false ) {
        // 如果链接中没有post_type参数,就自动添加
        if ( strpos( $url, 'post_type=' ) === false ) {
            $url = add_query_arg( 'post_type', 'model', $url );
        }
    }
    return $url;
}

小提示

两个方案对比:方案1更健壮,覆盖了所有可能的请求场景(包括用户手动输入URL);方案2只修改后台生成的链接,对用户手动输入的无效。根据你的实际需求选择即可~

备注:内容来源于stack exchange,提问作者Asier Pabolleta Martorell

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 18:18:12