按帖子作者姓名搜索帖子

时间:2013-03-20 作者:hemc4

我想搜索由特定作者发布的帖子。为此,我在中添加了一个过滤器functions.php:

function wpse_29570_where_filter($where){
        global $wpdb;
        if( is_search() ) {
            $search= get_query_var(\'s\');
            $query=$wpdb->prepare("SELECT $wpdb->users.ID  FROM $wpdb->users WHERE  $wpdb->users.display_name LIKE \'%%%s%%\' ", $search );
            $authorID= $wpdb->get_var( $query );//die;

            if($authorID){
                $where = "  AND  ( atl_posts.post_author = {$authorID} ) ";
            }
            //echo $where;
         }
         return $where;
    }

    add_filter(\'posts_where\',\'wpse_29570_where_filter\');
我回应了where 它提供的条件

AND ( atl_posts.post_author = 1 ) 
但是当我打字搜索时admin 它显示空白结果。

请帮我把它做好
有谁能告诉我更好的方法吗?

1 个回复
SO网友:David Gard

这条线可能是问题所在-

$where = "  AND  ( atl_posts.post_author = {$authorID} ) ";
您正在替换$where的内容,而不是更改它。你必须使用. 之前= -

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

结束

相关推荐

Query posts from current year

我不太明白为什么这不管用。我试图使用以下内容在首页上仅显示当年的帖子:<?php query_posts( \"&year=$current_year&order=DESC\"); ?> 但它仍然显示2012年的帖子(它们实际上不是2012年发布的,但我将发布日期设置为其中一篇帖子,显示日期为去年2月)根据文件,我应该这样做。有人能解释一下吗?谢谢