ワードプレスでスラッグ名からIDを取得する方法

WordPressでスラッグ名からIDを取得する方法
先生

ワードプレスに標準で用意されている関数を使うと、いろいろなスラッグ名からそのデータの ID を取得することができるんじゃ。

生徒

スラックって、最近イケてる会社で流行ってるというチャットですか。

先生

名前が似てるけどそれは Slack のことじゃろ。スラックではなくスラッグ。ワードプレスでスラッグといったら、URL にも使われる文字列のことじゃ。例えば、記事を作成する時にこんな文字列を書いたことはないか。

URLスラッグ
これは投稿の URL スラッグ
生徒

あーこれのことですか。もちろん知ってます!

先生

(何をえばっておる・・・)まあよい、百聞は一見にしかず、その方法をいくつか紹介してみよう。

固定ページ

関数 get_page_by_path() の引数に固定ページのスラッグを指定します。

$page = get_page_by_path( 'スラッグ' );
$page_id = $page->ID;

投稿

関数 get_page_by_path() の引数に投稿のスラッグを指定します。

$post = get_page_by_path( 'スラッグ', 'OBJECT', 'post' );
$post_id = $post->ID;

get_page_by_path() の3番目の引数にカスタム投稿名を指定することで、カスタム投稿の ID も取得できます。

$post = get_page_by_path( 'スラッグ', 'OBJECT', 'カスタム投稿名' );
$post_id = $post->ID;

カテゴリー

関数get_category_by_slug() の引数にカテゴリーのスラッグを指定します。

$cat = get_category_by_slug( 'スラッグ' );
$cat_id = $cat->cat_ID;

タグ

関数 get_tags() の引数にタグのスラッグを指定します。

$tags = get_tags( array( 'slug' => 'スラッグ' ) );
$tag_id = $tags[0]->term_id;
先生

とまあ、こういう調子でそのデータの ID を取得できるのだ。あとはその ID を使って、煮るなり焼くなり好きなことをすればよい。

生徒

ぼくは焼き魚の方が好きだなあ・・・🐟

先生

今日はこれでおしまいにしておこう・・・。

参考URL