How can I get the slug of a page or post?
Another option is getting the slug by post ID:
$slug = get_post_field( 'post_name', $post_id );
Here is more info about
As per other answers slug is stored in
post_name property. While it could be accessed directly I prefer the (underused)
get_post_field() function for access post properties which have no proper API for them.
It requires post provided explicitly and doesn't default to the current one.
If you want to get slug of the post outside the loop then use:
$post_id = 20; //specify post id here $post = get_post($post_id); $slug = $post->post_name;
If you want to get slug of the post from the loop then use:
global $post; echo $post->post_name;