it-swarm.com.de

Beiträge nach Autorennamen durchsuchen

Ich möchte nach Beiträgen suchen, die von einem bestimmten Autor veröffentlicht wurden. Zu diesem Zweck habe ich in functions.php einen Filter hinzugefügt:

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');

Es gibt die where Bedingung wieder, die es gibt

AND ( atl_posts.post_author = 1 ) 

wenn ich aber admin eingebe, wird ein leeres Ergebnis angezeigt.

Bitte helfen Sie mir, damit es funktioniert.
Kann mir jemand einen besseren Weg nennen, es zu tun?

3
hemc4

Diese Zeile ist wahrscheinlich das Problem -

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

Sie ersetzen den Inhalt von $ where, ohne ihn zu ändern. Sie müssen . vor = verwenden -

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