2

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
0

1 Answer 1

3

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";
}
1

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.