先日作った、よく使うやつシリーズ第二弾。
ページのスラッグを取得する方法です。
カテゴリと違って、タイトルとかならget_title()とかで取れると思うんで、特に必要ないと思うんですが、スラッグは画像フォルダを指定するのに使ってたりして、意外と必要になるんで、覚えておくと便利かもしれません。
目次
ページIDからスラッグを取得
$p_slug = get_page_uri(get_the_ID());
はいこれだけです。
このget_page_uri()という関数ですが、
固定ページの ID から、その固定ページの URI を作って返します。
関数リファレンス/get page uri – WordPress Codex 日本語版
というものです。
で、()に入れてるget_the_ID()は
現在の記事のID(数値)を返します。このタグは、ループのなかでのみ使用することができます。
関数リファレンス/get the ID – WordPress Codex 日本語版
ということで、現在の記事IDを返してくれます。
つまり、get_the_ID()で取得した記事IDのスラッグをget_page_uri()で取得している。ということになります。
ページの情報GETだぜ!
スラッグは上記の方法で簡単に取得できます。
じゃあ、同じように例えばページ名がほしいなぁ。と思っても、上記のような書き方僕は知りません。
そんな時は、カテゴリの時と同じように、ページの情報を取得しましょう。
ページの情報を取得するのはget_postで取得します。
$page = get_post( get_the_ID() );
これでページの情報GETできました。
var_dump($page)すると
object(WP_Post)#2764 (24) { ["ID"]=> int(988) ["post_author"]=> string(1) "2" ["post_date"]=> string(19) "2015-02-09 23:35:31" ["post_date_gmt"]=> string(19) "2015-02-09 14:35:31" ["post_content"]=> string(59) "このページは固定ページのテスト用です。" ["post_title"]=> string(27) "固定ページのテスト" ["post_excerpt"]=> string(0) "" ["post_status"]=> string(7) "publish" ["comment_status"]=> string(4) "open" ["ping_status"]=> string(4) "open" ["post_password"]=> string(0) "" ["post_name"]=> string(9) "page-test" ["to_ping"]=> string(0) "" ["pinged"]=> string(0) "" ["post_modified"]=> string(19) "2015-02-09 23:35:31" ["post_modified_gmt"]=> string(19) "2015-02-09 14:35:31" ["post_content_filtered"]=> string(0) "" ["post_parent"]=> int(0) ["guid"]=> string(41) "https://www.sriproot.net/blog/?page_id=988" ["menu_order"]=> int(0) ["post_type"]=> string(4) "page" ["post_mime_type"]=> string(0) "" ["comment_count"]=> string(1) "0" ["filter"]=> string(3) "raw" }
テスト用に作ったページの情報を取得してみました。
まとめ
まとめるほどでもありませんが、ページスラッグは一番最初の書き方で簡単に取得できます。
ただ、ページスラッグ以外、例えばページ名とかを取得する場合は、get_postでページの情報を一旦取得してから、利用する必要があります。
スラッグだけなら最初のでいいし、あわせて他の情報も取得するなら最初からget_post使ってたほうがやりやすいと思います。
多分ほかにもまとめられそうなのがあるんで、しばらく「よく使うシリーズ」増えそうです。
そいぎ~