zoukankan      html  css  js  c++  java
  • 让 WordPress 只搜索文章的标题

    WordPress 默认的搜索功能还真挺弱的,搜索出来的结果很不符合人意,如果你想让它检索出来的结果更加相关,可以限定只搜索文章的标题,将下面的代码添加到主题的 functions.php 文件即可:

    /**
     * 让 WordPress 只搜索文章的标题
     * https://www.wpdaxue.com/search-by-title-only.html
     */
    function __search_by_title_only( $search, &$wp_query )
    {
    	global $wpdb;
    
    	if ( empty( $search ) )
            return $search; // skip processing - no search term in query
    
        $q = $wp_query->query_vars;    
        $n = ! empty( $q['exact'] ) ? '' : '%';
    
        $search =
        $searchand = '';
    
        foreach ( (array) $q['search_terms'] as $term ) {
        	$term = esc_sql( like_escape( $term ) );
        	$search .= "{$searchand}($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";
        	$searchand = ' AND ';
        }
    
        if ( ! empty( $search ) ) {
        	$search = " AND ({$search}) ";
        	if ( ! is_user_logged_in() )
        		$search .= " AND ($wpdb->posts.post_password = '') ";
        }
    
        return $search;
    }
    add_filter( 'posts_search', '__search_by_title_only', 500, 2 );

    参考资料:http://wordpress.stackexchange.com/questions/11822/

    高版本php报错请将

    &$wp_query 改为
    $wp_query
  • 相关阅读:
    2016/11/10 kettle概述
    2016/11/07 线程的创建和启动
    python3 pip使用报错
    django建表报错
    django学习
    前端系列
    git使用标准
    我的Python之路
    nginx优化
    python安装包的时候报错
  • 原文地址:https://www.cnblogs.com/surplus/p/15736195.html
Copyright © 2011-2022 走看看