WordPress模板插件定制

您现在的位置是:首页 > WordPress教程WordPress教程

WordPress如何添加搜索功能

查看 WP集市 的更多文章WP集市 2025-09-01 【WordPress教程】 1152人已围观

  1. 先唠唠为啥要整搜索功能。你想啊,一个WordPress站点要是没搜索,用户得像没头苍蝇似的乱翻,找篇文章得划拉半天,体验直接垮掉。所以加个搜索框,让用户输入关键词就能直达内容,这操作必须得有。

  2. 默认搜索其实WordPress自带,但可能太基础了。你往主题文件里加个代码就行,比如在header.php或者侧边栏塞这么一段:

    <form role="search" method="get" action="<?php echo esc_url(home_url('/')); ?>">
    <input type="text" placeholder="搜点啥..." name="s">
    <button type="submit">Go</button>
    </form>

    这玩意儿会自动跳转到搜索结果页,用$_GET['s']抓取关键词。

  3. 但你要是嫌默认搜索太糙,可以用WP_Query自己折腾。比如在search.php模板里循环输出结果:

    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
    <?php the_excerpt(); ?>
    <?php endwhile; else : ?>
    <p>毛都没找到!换个词试试?</p>
    <?php endif; ?>

    这样能控制显示样式,比默认的列表强点。

  4. 有时候搜索范围太广,想只搜文章标题?改functions.php:

    function search_by_title_only($search, $wp_query) {
    if (!empty($search) && !empty($wp_query->query_vars['search_terms'])) {
        global $wpdb;
        $q = $wp_query->query_vars;
        $n = !empty($q['exact']) ? '' : '%';
        $search = array();
        foreach ($q['search_terms'] as $term) {
            $search[] = $wpdb->prepare("$wpdb->posts.post_title LIKE %s", $n . $wpdb->esc_like($term) . $n);
        }
        $search = ' AND ' . implode(' AND ', $search);
    }
    return $search;
    }
    add_filter('posts_search', 'search_by_title_only', 500, 2);

    这段代码把搜索逻辑锁死在标题上,内容不理它。

  5. 最后扯个插件方案——装个“Relevanssi”或者“SearchWP”,这俩货能加权搜索、模糊匹配,甚至搜自定义字段。不用写代码,后台一激活,配置几下就搞定,适合懒得折腾的兄弟。

总之,WordPress搜索可深可浅,看需求蹦迪就行。代码别瞎粘贴,先备份主题,不然崩了可别嗷嗷叫。

Tags:

WordPress模板插件定制

WP集市

V管理员
文章 280 篇 | 评论 0 次
最新文章