web-dev-qa-db-ja.com

デフォルトのWordPress検索機能で著者名で検索することは可能ですか?

私はWordPressの検索機能を改善することがワームの巨大な可能性であることを認識していますが、私がそれをする必要がある唯一の追加のことは私が著者の名前を検索するときに結果を示すことです。

たとえば、Katie Johnsonという著者がいて、Katieを検索すると、彼女の名前がCONTENTにリストされている結果が得られますが、彼女がPOSTEDにした結果は得られません。

これは単純な問題のように思えますが、それでも解決策がまだ見つかっていません。

ありがとう。

7
zack

たぶん、あなたはこのような何かを使って、あなたの条件を直接クエリ文字列に追加することを試みることができます

function wpse_29570_where_filter($where){
        global $wpdb;
        if( is_search() ) {
            $search= get_query_var('s');
            $query=$wpdb->prepare("SELECT user_id  FROM $wpdb->usermeta WHERE ( meta_key='first_name' AND meta_value LIKE '%%%s%%' ) or ( meta_key='last_name' AND meta_value LIKE '%%%s%%' )", $search ,$search);
            $authorID= $wpdb->get_var( $query );

            if($authorID){
                $where = "  AND  ( wp_posts.post_author = {$authorID} ) ";
            }

         }
         return $where;
    }

    add_filter('posts_where','wpse_29570_where_filter');
6
hacksy