WordPressのテンプレートやテーマと同じレベルのPHPページがあります。このページから現在ログインしているユーザーの詳細を取得できるようにする必要があります。
私はこれを試しました:
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );
global $current_user;
$current_user = wp_get_current_user();
var_dump( $current_user );
しかし、それは何も返さない。 0
はuser_id
として、他のフィールドには何もありません。私は何かが足りないのですか?
更新:
これはvar_dump
の結果です。
object Object]1object(WP_User)#79 (10) {
["data"] => NULL
["ID"] => int(0)
["id"] => int(0)
["caps"] => array(0) {}
["cap_key"] => NULL
["roles"] => array(0) {}
["allcaps"] => array(0) {}
["first_name"] => string(0) ""
["last_name"] => string(0) ""
["filter"] => NULL
}
あなたはできる...
'hey username'メッセージを表示したいファイルにファイルをロードします。
<?php include(TEMPLATEPATH .'/check-user-hello.php'); ?>
。
そして、そのファイルの中で "check-user-hello.php"
このコードを書く必要があります
<?php
if ( is_user_logged_in() ) {
global $current_user;
get_currentuserinfo();
echo 'Hey ' . $current_user->display_name;
} else {
echo '<a href="'. get_bloginfo('url') .'/wp-admin" class="loginlinktop">Login</a>';
}
?>
。
お役に立てれば :)
この主題についてもっと知るためには:
。
FIX 3
私の知る限りでは、ループの外でWordpressの関数を実行するには、wp-blog-header.phpを取得する必要があります。
<?php
require('../../../wp-blog-header.php');
if ( is_user_logged_in() ) {
global $current_user;
get_currentuserinfo();
echo 'Hey ' . $current_user->display_name;
} else {
echo '<a href="'. get_bloginfo('url') .'/wp-admin" class="loginlinktop">Login</a>';
}
?>
。
注意してください:
私がこのコードで作成した "wp header blog"パスはあなたのファイルがあなたのテンプレートディレクトリにあると仮定しています。
検索で見つかったスニペットから余分なコードをコピーしたことに気付くまで、私は問題にぶつかりました。
define( 'SHORTINIT', true );
私が 'true'を 'false'に置き換えたとき、それは魅力のように働きました。
define( 'SHORTINIT', false );