方法:WordPressでグローバル変数を検査する


22

多くの場合、グローバルオブジェクト/変数からデータを取得する方法について人々は混乱しています。

質問:グローバル変数はどのような方法で検査できますか?


このQは、WAで頻繁に必要になるために書かれました。ここにリンクするためのお気に入りにしたかっただけです(多くの場合、githubの要点リンクは見ていません)。

何かが間違っている場合、または説明に何かが欠けていると思われる場合は、例を自由に変更してください。他の便利なものを追加する場合は、それぞれを単一の回答として追加してください。ありがとうございました。


これはコミュニティwikiであるか、質問に言い換える必要があります。
t31os

@ t31osこれはできますか?コミュニティwikiがどこにあるかさえわかりません
...-kaiser

私はベータ版では、今ではないけれども、担当者の要件が高い場合、私は以前、ウィキ、多分@Rarstまたは@MikeSchinkelとして質問をマークするために高い担当者のユーザーに依頼する必要があるかもしれません可能性が考えられます。..
t31os

@MikeSchinkel @Rarst @Janファブリ-プッシュ
カイザー

回答:


12

または、怠け者の場合は、Debug Barプラグインをインストールするだけです。

管理バーにボタンを追加します。クリックすると、非推奨通知、WP_Query変数、SQLクエリログなど、あらゆる種類の有用な情報を含むパネルが表示されます。


絶対的に正しい。ただし、グローバル変数/オブジェクトにアクセスする方法と、そこからパーツを取得する方法については説明しません。
カイザー

Btw:これがどのように機能するかについて簡単な説明を追加していただけますか?この「ハウツーベーシック」-AQの拡張に役立つ/実際に役立つと思います。
カイザー

@kaiser:完了。
スクライブ

4

データを検査する方法:

これを使用して、現在のrequest / wp_queryから使用できるものの洞察を取得します。

function inspect_wp_query() 
{
  echo '<pre>';
    print_r($GLOBALS['wp_query'])
  echo '</pre>';
}
// If you're looking at other variables you might need to use different hooks
// this can sometimes be a little tricky.
// Take a look at the Action Reference: http://codex.wordpress.org/Plugin_API/Action_Reference
add_action( 'shutdown', 'inspect_wp_query', 999 ); // Query on public facing pages
add_action( 'admin_footer', 'inspect_wp_query', 999 ); // Query in admin UI

ところで:

    // this:
    global $wp_query;
    $wp_query;
    // is the same as
    $wp_query;
    // and as this:
    $GLOBALS['wp_query'];

// You can do this with each other global var too, like $post, etc.

実際にデータを取得する方法:

// Example (not the best one)
(Object) WP_Query -> post (stdClass) -> postdata (Array)

// How to get the data:
// Save object into var
$my_data = new WP_Query; // on a new object
// or on the global available object from the current request
$my_data = $GLOBALS['wp_query'];

// get object/stdClass "post"
$my_post_data = $my_data->post;
// get Array
$my_post_data = $my_data['post'];



すべてのサイドバー名をリストしますか?
(ドロップダウンを生成/すべてのサイドバーを含むオブジェクトを選択global $wp_registered_sidebars


0

スクリプトを読み込んで最終出力をレンダリングするプロセスの場所によっては、上記の変数の一部が存在しない場合があります。かなり包括的なビュー、おそらく少し極端なビューが必要な場合は、以下を試してください。

var_dump($GLOBALS);

var_dumpは、データのタイプとフォーマットを少し教えてくれるという点でも優れています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.