佐賀でふらふり

佐賀をうろつくWebデザイナーのブログ

WordPress よく使う

WordPressでページのスラッグを取得する方法


先日作った、よく使うやつシリーズ第二弾。
ページのスラッグを取得する方法です。

カテゴリと違って、タイトルとかならget_title()とかで取れると思うんで、特に必要ないと思うんですが、スラッグは画像フォルダを指定するのに使ってたりして、意外と必要になるんで、覚えておくと便利かもしれません。

目次

  1. ページIDからスラッグを取得
  2. ページの情報GETだぜ!
  3. まとめ

ページ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使ってたほうがやりやすいと思います。

多分ほかにもまとめられそうなのがあるんで、しばらく「よく使うシリーズ」増えそうです。
そいぎ~


返信する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA