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

WP后台:将自定义文章类型归档纳入链接搜索结果

解决WordPress编辑器链接搜索包含自定义文章类型归档的问题

嘿,我完全懂你的需求——在编辑器里添加链接时,能直接搜索到自定义文章类型(比如你说的members)的归档页面,不用手动输入链接,这个体验确实要友好太多了!

首先得说,你之前用的pre_get_posts钩子确实不对,这个钩子主要是用来修改前台或者后台的文章列表查询,而编辑器里的链接搜索是独立的AJAX请求,得用专门的过滤器来处理。

正确的钩子是wp_link_query,它专门负责修改编辑器链接搜索的结果集。下面是可以直接用的代码示例:

function include_cpt_archives_in_link_search( $results, $query ) {
    // 确认是编辑器的链接搜索AJAX请求
    if ( ! empty( $query['s'] ) && isset( $query['action'] ) && $query['action'] === 'wp-link-ajax' ) {
        // 这里列出你想要加入搜索的自定义文章类型slug
        $target_cpts = array( 'members', 'services' );
        
        foreach ( $target_cpts as $cpt_slug ) {
            // 检查搜索关键词是否匹配CPT的slug或者名称(这里用不区分大小写的匹配)
            $cpt_object = get_post_type_object( $cpt_slug );
            $cpt_name = $cpt_object->labels->name;
            if ( stripos( $cpt_slug, $query['s'] ) !== false || stripos( $cpt_name, $query['s'] ) !== false ) {
                // 获取该CPT的归档链接
                $archive_url = get_post_type_archive_link( $cpt_slug );
                if ( $archive_url ) {
                    // 将归档页面添加到搜索结果中
                    $results[] = array(
                        'title'     => $cpt_name . ' 归档',
                        'permalink' => $archive_url,
                        'info'      => '自定义文章类型归档页面',
                    );
                }
            }
        }
    }
    return $results;
}
add_filter( 'wp_link_query', 'include_cpt_archives_in_link_search', 10, 2 );

代码说明:

  • 首先判断当前请求是否是编辑器的链接搜索AJAX请求,避免影响其他查询
  • 遍历你指定的自定义文章类型,同时匹配slug和显示名称,这样用户搜“会员”或者“members”都能找到归档
  • 用get_post_type_archive_link()获取归档链接,确保链接的正确性
  • 把归档页面的信息添加到搜索结果数组,会在编辑器的搜索弹窗里显示

额外优化建议:

如果你想自动包含所有公开的自定义文章类型,不用手动列slug,可以把$target_cpts替换成:

$target_cpts = get_post_types( array(
    'public'   => true,
    '_builtin' => false,
), 'names' );

这样所有你创建的公开自定义文章类型的归档页面,都会自动出现在链接搜索结果里啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 07:27:29