get_posts not finding argument: post_name

I am digging up posts with a specific slug:

Where

$postSlug = 'abc'

$args = array(
          'post_name' => $postSlug,
          'post_type' => 'post',
          'post_status' => 'publish'
        );
    $slugPosts = get_posts($args);

Output of $slugPosts[0]->post_name:

$slugPosts[0]->post_name="xyz"

What am I doing wrong here? How can I get a post from a slug?

1 Answer
1

Aha, despite there being a postmeta field of post_name->’slug’, the correct syntax (which mirrors that of WP_Query, is

$args = array(
      'name' => $postSlug,
      'post_type' => 'post',
      'post_status' => 'publish'
    );
$slugPosts = get_posts($args);

Where ‘name’ is the key in the query (for posts, ‘postname’ for page).

Doesn’t make much sense but might as well stick it as an answer.

Leave a Comment