ホームページ制作・大阪インフォメーションメディアデザイン

06-6809-5021

Staff Blog
スタッフブログ

  • Twitterでシェア
  • このエントリーをはてなブックマークに追加
  • Google+でシェア
  • follow us in feedly

「get_queried_object()」が魔法のことば

師走ですね。
師走といえば。。。大掃除?毎年忙しすぎてそんなこと、気にしてられないマサヲシです。

「get_queried_object()」がちょいちょい便利ということ。
いつも通り作っていても、何かしら、ボタンの掛け違い程度の誤差で、ページの情報の取得がうまくいかないことが、ちょいちょいあります。

それは、ほんの些細なミスで、クエリをリセットできていなかったとか、パーマリンクの設定が微妙だったとか、なにかしらあったります。
そんなときにそのページの情報が取得できる「get_queried_object()」が便利だったので覚書。

なにが出来るのかというと

現在クエリされているオブジェクトを取得します。例えば:

  • 単一投稿ページを表示中なら、投稿オブジェクト。
  • 固定ページを表示中なら、固定ページのオブジェクト。
  • カテゴリーアーカイブを表示中なら、カテゴリーオブジェクト。
  • 投稿者アーカイブを表示中なら、投稿者オブジェクト。
  • 等々。

これは $wp_query->get_queried_object() のラッパー関数です。

引用:関数リファレンス/get queried object

ということだそうな。
簡単に言うと、投稿、固定ページ、アーカイブページ、カスタム投稿タイプ、何であろうとも、そのページの情報が取得できます。

<?php
$queried_object = get_queried_object();
var_dump( $queried_object );
?>

を書いて、そのページを取得してみてはいかがでしょうか。
なにかの訳には立つかもしれません。

別にページの情報の確認だけじゃなく、その情報を使うためにとってもいいのですよ。

object(WP_Post)#2373 (24) {
 ["ID"]=>
 int(453)
 ["post_author"]=>
 string(1) "1"
 ["post_date"]=>
 string(19) "2016-11-30 22:53:31"
 ["post_date_gmt"]=>
 string(19) "2016-11-30 13:53:31"
 ["post_content"]=>
 string(0) ""
 ["post_title"]=>
 string(18) "サイトマップ"
 ["post_excerpt"]=>
 string(0) ""
 ["post_status"]=>
 string(7) "publish"
 ["comment_status"]=>
 string(6) "closed"
 ["ping_status"]=>
 string(6) "closed"
 ["post_password"]=>
 string(0) ""
 ["post_name"]=>
 string(7) "sitemap"
 ["to_ping"]=>
 string(0) ""
 ["pinged"]=>
 string(0) ""
 ["post_modified"]=>
 string(19) "2016-11-30 22:53:31"
 ["post_modified_gmt"]=>
 string(19) "2016-11-30 13:53:31"
 ["post_content_filtered"]=>
 string(0) ""
 ["post_parent"]=>
 int(0)
 ["guid"]=>
 string(31) "http://www.imd-net.com/?page_id=***"
 ["menu_order"]=>
 int(0)
 ["post_type"]=>
 string(4) "page"
 ["post_mime_type"]=>
 string(0) ""
 ["comment_count"]=>
 string(1) "0"
 ["filter"]=>
 string(3) "raw"
}

ちなみに取得出来る情報はこんな感じ
※固定ページの情報です。

この記事を共有する

髭人
投稿者:髭人
2016年12月01日木曜日 | 03:19
WEB制作業界に新しい風に!台風になりたい!

この人が書いたその他のブログ記事

コメントを残す

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

  • I.M.Dコーポレートサイト
お問い合わせ