如何在WordPress中添加站内搜索?

最近更新时间: February 18, 2024

在使用WordPress建站中,站内搜索是常见的功能之一,可以帮助我们快速找到相关的文章或者产品,尤其是在内容较多的资讯类,博客类以及产品类网站,那么如何在WordPress网站中添加站内搜索功能呢?

WordPress站内搜索
  1. 步骤一:调用搜索框代码:

    把这段代码放到我们需要展示搜索框的位置,既可以显示系统默认的搜索框以及搜索功能。

    <?php get_search_form (); ?>

  2. 步骤二:搜索框内容及样式修改:

    在当前使用的主题目录下找到 searchform.php 文件进行相关修改即可,同时可以通过自定义css样式可以直接修改其样式。

  3. 步骤三:将搜索结果页动态页面改为静态,这样更有利于SEO优化:

    在对应主题根目录的 functions.php 文件中添加如下代码:

    //Search result link style modification
    function redirect_search() {
    if (is_search() && !empty($_GET['s'])) {
    wp_redirect(home_url("/search/").urlencode(get_query_var('s')));
    exit();
    }
    }

    注意:这种代码只能是常规搜索可以加,如果是有选择分类搜索(下面步骤五会说到),加上后会影响搜索结果,不能加。

  4. 步骤四:只让文章中的标题匹配用户搜索字词时显示对应的搜索结果

    在主题根目录 functions.php 中添加如下代码:

    //Search results match the title
    add_filter( 'posts_search', 'ytkah_search_by_title', 10, 2 );
    function ytkah_search_by_title( $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 ( ( array ) $q['search_terms'] as $term )
    $search[] = $wpdb->prepare( "$wpdb->posts.post_title LIKE %s", $n . $wpdb->esc_like( $term ) . $n );
    if ( ! is_user_logged_in() )
    $search[] = "$wpdb->posts.post_password = ''";
    $search = ' AND ' . implode( ' AND ', $search );
    }
    return $search;
    }

  5. 步骤五:按栏目(分类)类别搜索设置:

    在主题根目录functions.php 中添加如下代码:

    //With Category Search Settings
    function my_searchwp_get_search_form_with_categories_dropdown( $form ) {
    ob_start(); ?>
    <form role="search" method="get" class="search-form" action="<?php echo home_url( '/' ); ?>">
    <label>
    <span class="screen-reader-text">Search For</span>
    <input type="search" class="search-field" placeholder="Search..." value="<?php echo esc_attr( get_search_query() ); ?>" name="s" title="Search for:" />
    </label>
    <?php
    // for more information see http://codex.wordpress.org/Function_Reference/wp_dropdown_categories
    $swp_cat_dropdown_args = array(
    'show_option_all' => __( 'Any Category' ),
    'name' => 'cat',
    );
    wp_dropdown_categories( $swp_cat_dropdown_args );
    ?>
    <input type="submit" class="search-submit" value="Search" />
    </form>
    <?php return ob_get_clean();
    }
    add_filter( 'get_search_form', 'my_searchwp_get_search_form_with_categories_dropdown' );

    注意:在这一步如果要修改搜索框内容或者样式代码,以上面这个的代码为准(之前那个不是分类的搜索框使用的searchform.php文件不用管也不用动不影响);调用方法都是一样的即使用以下代码。

    <?php get_search_form (); ?>

  6. 步骤六:搜索结果页设置(一般以列表的形式出现,类似与网站列表页):

    这里需要修改主题目录下的 search.php 文件,没有的话新建一个。

    文件中主要包含页面头部,尾部,以及搜索显示结果数,和符合搜索条件的搜索结果。

    其中用户搜索词,也可以做为搜索结果页的标题或者关键词,代码如下:

    <?php the_search_query(); ?>

    其中显示搜索结果数量代码如下:

    <span class="searchnum"><?php echo $wp_query->found_posts; ?></span> <span class="searchkey"><?php _e( 'Search Results Found For', 'locale' ); ?>: "<?php the_search_query(); ?>"</span>

    其它样式和内容都可以根据我们的需要进行自定义或者添加。

通过以上六个步骤,我们基本上可以做出我们想要的搜索功能框,并添加到需要显示的页面部分,从而使网站的功能更加丰富。

版权声明©:希望对您会有所帮助;转载请注明出处。

欢迎留言评论!

Your email address will not be published. Required fields are marked *

大简笔记微信公众号

欢迎关注微信公众号随时了解最新知识分享

微信公众号交流咨询