2016-05-11 10 views
0

私は次の問題があります。私はWordpress環境を外部のPHPファイルにロードしたい。すべての私の仕事は、ローカルホスト上の現在と次のように私のPHPコードは次のとおりです。ログインしているユーザーの現在のWordpressの電子メールアドレスを外部のPHPファイルで取得するにはどうすればよいですか?

<?php 
require("../../wp-blog-header.php"); 

$admin = do_shortcode("[su_user field='user_email']"); 

if ($admin === "[email protected]") { 

    // Do stuff here 

} 

else { 

    echo "<h1>Forbidden.</h1>"; 

} 

これは私はlocalhostで完全に正常に動作しますので、私は、私は、サーバーにファイルをアップロードするとき、それはことを考えると、あまりにも働かなければならないことを考え出しファイルはローカルと同じディレクトリに格納されます。したがって、../../wp-blog-header.phpです。残念ながら、これは動作しません。私はecho $admin;すると、次のエラーが表示されます。

ユーザー:

<?php global $user_email; 
     get_currentuserinfo(); 

     echo $user_email; 
?> 

これはどちらか動作しません:ユーザーIDが

私はこのようなショートコードを使用せずにネイティブWordpressの機能を使用してみました

正しくありません。 。 WordPress環境を外部のPHPファイルに読み込むより効率的な方法はありますか?ここで何が起きているのかについてのご意見は?それは必ずしも電子メールである必要はありません、それは私が私が言及するのを忘れてみました、私には0

を与えるだけでなくユーザーIDである可能性があり、PHPファイルのロードと一緒を禁止エコーエラー。これは私がファイルrequire("../../wp-blog-header.php")が実際にロードされていると信じさせます。なぜなら、私がディレクトリを変更すると、ファイルが現在動作している/利用可能であるというエラーが直接出るからです。

ショートコードは、ログインしたユーザーの電子メールアドレスを返す新しいPageの中でテストしたので動作します。


UPDATEは

私のルートは以下のとおりです。

私もrequire("/var/www/vhosts/test-website.com/httpdocs/wp-blog-header.php")でテスト
/var/www/vhosts/test-website.com/httpdocs/ 

。それと同じ結果。奇妙なことは、この行の下にwp_head()を追加すると、ヘッダーが読み込まれるということです。私は質問を再整理します:

ログインしているユーザーの現在の電子メールアドレスを外部のPHPファイルで取得するにはどうすればよいですか?

+0

あなたは仮想ホストでこれを実行していたローカルホスト上で実行されていましたか?または、あなたが 'localhost/folder/... 'として実行していたのですか? – RiggsFolly

+0

@RiggsFollyを' localhost/folder/...'と正確には私はMAMPを使います。これはどんな助けでもいいと思います。 –

+0

あなたのローカルのマシンで 'DocumentRoot'がどのように設定されていますか? LIVEウェブサイトでは同じではありません – RiggsFolly

答えて

0

ファイルがWordpressインスタンスと同じフォルダルートである場合。ちょうど怒鳴るのコードを使用します。

<?php 
define('ROOT_PATH', dirname(__FILE__)); 
require(ROOT_PATH . "/wp-blog-header.php"); 

//自分のもの

+0

動作しませんでした。私はこれがサーバーの問題であり、機能の問題ではないと思います。 –

関連する問題