WordPress: WP_Query search criteria on ‘post_name’

I’m using WP_Query (pretty standard). It all works great.

However, I have a particular modification to make, where, if the user enters the specific post name in the URL, the search will return only the post that matches that post_name value.

Read More

See my code below with a comment about the particular line not working.

<?php

$getPeople = array(
    'post_type' => 'person',
    'posts_per_page' => -1,
    // I want this below to only return me the post with this specific value.
    // This doesn't error, but doesn't work either.
    // I know it seems counter-productive to a 'search' but this particular case requires it.
    // This has a hard-coded value at the moment.
    'post_name' => 'rebecca-atkinson',
    'orderby' => 'meta_value',
    'meta_key' => 'last-name',
    'order' => 'ASC',

    'meta_query' => array(
        array(
            'key' => 'gender',
            'value' => $theGender,
        )
    ),

    'tax_query' => array(

        'relation' => 'OR',

        array(
            'taxonomy' => 'accent',
            'field' => 'slug',
            'terms' => $theAccent,
            'operator' => 'IN',
        ),
        array(
            'taxonomy' => 'style',
            'field' => 'slug',
            'terms' => $theStyle,
            'operator' => 'IN',
        ),
        array(
            'taxonomy' => 'age',
            'field' => 'slug',
            'terms' => $theAge,
            'operator' => 'IN',
        ),

    )
);

$myposts = new WP_Query($getPeople);

?>

Your help would be greatly appreciated. If I could just see how to search on this specific ‘slug’ then that would be great.

Many thanks,
Michael.

Related posts

Leave a Reply

2 comments

  1. In addition to my answer in the comments above, I thought I’d post it as an official answer too:

    I have to use 'name' and NOT 'post_name'.

    For example:

    'name' => 'rebecca-atkinson' 
    

    Hope this helps someone in future.