Get Custom Post Type by Slug

I recently had a case where I needed to get the post object for a custom post type in WordPress – I had to do this by a slug that the user passed in. There is a function (
get_page_by_path) which I initially thought was to only find the post object for pages but it actually goes deeper.

The function takes 3 arguments:

The path/slug that you’re looking for.

How you want the post to be returned – basically as an array or object.

The post type(s) you want to search through.

So to get the post object (let’s call my custom post type ‘book’) I can just do the following:

Get Custom Post Type by Path in WordPress

1

$book=get_page_by_path('the-cpt-slug',OBJECT,'book');

Now that I have the object I can reference it as I would any post object in WordPress:

1

2

3

$book_content=$book->post_content;

// OR

$book_id=$book->ID;

For more information, you can visit the get_page_by_path function reference on WordPress.