slug名から投稿を取得するには get_page_by_path
を使う
get_page_by_path( string $page_path, string $output = OBJECT, string|array $post_type = 'page' )
出典: get_page_by_path() | Function | WordPress Developer Resources
<?php $post = get_page_by_path('{slug}', 'OBJECT', $post_type); $postID = $post->ID; echo $postID;
カスタム投稿タイプで取得するには第三引数にpost_type
を渡す必要があるので、第二引数にはデフォルト値のOBJECT
を指定してオブジェクト形式で取得するのが楽。
第二引数でARRAY_N
とか指定したら別の形式にも出来るっぽいけど使い方が所がイマイチ分からん…
post オブジェクトからslug名を取得する
<?php $slug = $post->post_name;
おまけ タクソノミー (分類 e.g. タグ・カテゴリー) Term(タグ名・カテゴリー名)ののSulg名からtermを取得する方法
term_slugからもtermアーカイブのURL取得できるget_term_link
のコードを見ていたら、内部でslug名のときはget_term_by
を使っていたので、これを使えばterm_slugからtermオブジェクトを取得できる事を知りました。
get_term_by( string $field, string|int $value, string $taxonomy = '', string $output = OBJECT, string $filter = 'raw' )
出典: get_term_by() | Function | WordPress Developer Resources
<?php $term = get_term_by('slug', '{term_slug}', $taxonomy); var_dump($term);
内部的にSQL発行してそうだし、パフォーマンス面からもこういうのあまり多用しなくて済む設計にしておきたい。
[参考]
- get_page_by_path() | Function | WordPress Developer Resources
- get_term_by() | Function | WordPress Developer Resources
- get_term_link() | Function | WordPress Developer Resources

本当によくわかるWordPressの教科書 はじめての人も、挫折した人も、本格サイトが必ず作れる
- 作者: 赤司達彦
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2018/02/24
- メディア: 単行本
- この商品を含むブログ (1件) を見る