WP_Query Filtred by author name ( Return null )

I want to list all pages whose author has a specific name but WordPress returns null values

$args = array(
    'author_name '=> 'admin',
    'post_type'=>'page'
);

$pages = new WP_Query( $args );

foreach( $pages as $page ) {
    var_dump( $page->post_title );
}

result is

NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL string(4) "test" NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

That’s not how WP_Query works, it isn’t what the documentation says either. WP_Query is not a function.

foreach needs an array, or something that can be iterated on, but you’ve given it a WP_Query object.

Instead, look at the documentation or tutorials, all of them follow this basic pattern for a standard post loop:

$args = [
    // parameters go here
];
$query = new WP_Query( $args );
if ( $query->have_posts() ) { 
    while ( $query->have_posts() ) {
        $query->the_post();
        // display the post
        the_title();
        the_content();
    }
    wp_reset_postdata();
} else {
    echo "no posts were found";
}


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x