web-dev-qa-db-ja.com

すべてのテンプレートで使用するためのグローバル変数を作成します

私は以下のコードを使いました

function userinfo_global() {
    global $users_info;
    wp_get_current_user();
}
add_action( 'init', 'userinfo_global' );

ファイルusers.phpでは、このファイルはfuntions.phpの内側で呼び出されます。

テンプレートファイルに<?php echo $users_info->user_firstname; ?>がありますが、動作しません。

グローバルなwp_get_current_user();をやりたい

あなたが理由を知っている?

4
Juan David

あなたはまた、変数を埋める必要があります。

function userinfo_global() {
    global $users_info;
    $users_info = wp_get_current_user();
}
add_action( 'init', 'userinfo_global' );

そして、あなたはグローバルなコンテキストでどこでも$ users_infoを使うことができるはずです。いくつかのテンプレートパー(header.php、footer.php、get_template_partで使われるもの)はデフォルトではグローバルスコープではないので、変数にアクセスする前にそれらのファイルでglobal $users_info;を使わなければなりません。

5
janh

wp_get_current_user()はすでにWordPressによって事前定義されたグローバル関数です。あなたが常にグローバル変数を持っていることを確認するためにあなたのテンプレートにglobal $users_info;を追加しなければならないので、代わりに$users_info = wp_get_current_user();を同様に持っているかもしれません。

4
Peter HvD