2012-02-07 25 views
1

私は現在、Wordpressサイトの一部ではないいくつかのページを自分のウェブサイトに書き込もうとしていますが、Wordpressユーザーを使用したいと考えています。wp-load.phpなしで現在のユーザーを取得する

require_once("../../../wp-load.php"); 
$current_user = wp_get_current_user(); 

今私は必要なすべてのために$ current_user変数を使用することができます。しかし、私はwp-load.phpファイルをインクルードしているので、本当に必要のないオーバーヘッドがたくさんあります。

私の質問は、どのようにwp-loadを含めずに現在のWordPressユーザーを取得できますか?

自分でいくつかのファイルを追加する必要はありませんが、実際にこのページを呼び出すたびに設定することが必要なわけではありません。

+0

これを試すことができます。https://wordpress.org/support/topic/how-to-get-current-user-id-outside-of-wp-blog#post-820219 –

答えて

0

あなたはそのページで何をしていますか?私はあなたがajax経由でいくつかのPOSTを送信する場合は、thisをチェックする必要がありますので、尋ねています。

あなたがajaxを使用していないのに、Wordpressの機能にアクセスできるページが必要な場合は、何らかの理由でwp-loadをインクルードする必要があります。

テーマフォルダにpage-custom-name.phpというファイルを作成し、正確なタイトル「カスタム名」の空のページを公開することをおすすめします。今すぐwww.yoursite/custom-nameにアクセスすると、そのページが表示され、現在のユーザー情報を取得したり、他のWordpress機能にアクセスすることができます。

後で編集:

このアイデアの一部解決策:フックの使用はどうですか?あなたのfunctions.phpで

は、これらの行に置く:

add_action('wp_login', 'aboutuser'); 

function aboutuser($username, $user) 
{ 
    $userObject = $user; 

    //find a solution to send this data to your url of your application 
} 

基本的には、ユーザーがワードプレスでログインしているとき、aboutuser()関数が実行されるが、それはWordpressの3.3に2つのparamsを(得るのです。以前のバージョンでそれはユーザー名だけを取得します)。

ユーザーがログインすると、wpユーザーオブジェクトにアクセスできます。おそらく、このデータ(POSTリクエスト)をアプリケーションに渡してセッションに格納する方法があります。

でも可能かどうかわかりません。

+0

これは実際には作業プロジェクトです。我々は、ワードプレスの外ですでに別のアプリケーションをセットアップしています。私は、Wordpressシステムへの投稿を作成するためにアプリケーションに機能を追加しました。そのため、訪問者がWordpressシステムにログインし、投稿をすることができるようにする必要があります。実際に投稿を作成するページでは、投稿を作成してコメントを追加するための関数を呼び出す必要があるため、wp-load.phpをインクルードしても問題ありません。しかし、訪問者がwordpressにログインしているかどうかを確認するためだけにメインページにwp環境全体を読み込むことは過度です。 –

+0

さて、wp-loadを含めるかページを設定するかの違いについては、わかりません。しかし、wp-loadを含むことは本当にいいアイデアではありません。http://ottopress.com/2010/dont-include-wp-load-please/ – zuzuleinen

+0

記事へのリンクありがとうございますが、主にプラグインとそれが指摘する主な問題は、wp環境が2度ロードされることです。これは、アプリケーションがwp内で実行されていないので、私がやっていることではありません。私がこれに対する解決策を探していた主な理由は、wp-loadを含むことでした。phpがアプリケーションの機能の一部を失敗させていました。私はそれ以来、その問題の解決策を見つけました(しかし、私はまだ問題が存在する理由を完全に理解していません)。しかし、ユーザー情報を取得する方法を知っていればなおさらです。 –

関連する問題