纯代码给wordpress网站搜索曾加ID搜索功能

为WordPress默认搜索添加按文章/页面ID查询功能

以下是为WordPress添加ID搜索功能的完整PHP代码实现方案,可直接添加到主题的functions.php文件中或创建为自定义插件:add_id_search.php


<?php
/**
 * Plugin Name: WordPress ID Search Extension
 * Description: 为WordPress默认搜索添加按文章/页面ID查询功能
 * Version: 1.0
 * Author: Your Name
 */

// 修改主查询以支持ID搜索
function enhance_search_by_id($query) {
    if (!is_admin() && $query->is_main_query() && $query->is_search()) {
        $search_term = get_search_query();
        
        // 检测是否纯数字ID搜索(如 #123)
        if (preg_match('/^#?(\d+)$/', $search_term, $matches)) {
            $post_id = intval($matches[1]);
            $query->set('post__in', [$post_id]);
            $query->set('s', ''); // 清空关键词搜索
        }
    }
    return $query;
}
add_action('pre_get_posts', 'enhance_search_by_id');

// 在前端搜索框添加提示
function add_search_id_hint($form) {
    return str_replace(
        '</form>',
        '<div class="search-hint">提示:输入#加ID可直接搜索指定内容(如#123)</div></form>',
        $form
    );
}
add_filter('get_search_form', 'add_search_id_hint');

// 添加样式
function id_search_styles() {
    echo '<style>
        .search-hint {
            font-size: 0.8em;
            color: #666;
            margin-top: 5px;
        }
    </style>';
}
add_action('wp_head', 'id_search_styles');

该代码实现以下功能:

  1. 识别#+数字格式的搜索词(如#123或直接123)
  2. 自动转换为精确ID查询,绕过常规关键词搜索
  3. 保留原搜索功能的同时新增ID搜索特性
  4. 前端添加使用提示说明
  5. 包含简单样式优化提示文本显示

使用方法:将代码保存为插件文件上传激活,或直接添加到主题functions.php中。搜索时输入#加ID(如#42)即可直达指定内容。