

管理者権限でWordPress管理画面にログインしている状態で、公開サイトを開いたとき、一般ユーザーと表示する項目を分けたいと考えています。

公開サイト側でwp_get_current_userを使い、ユーザー情報の取得を試みましたが、ユーザー情報が取得できませんでした。  
管理画面にログインした状態で、同じブラウザで閲覧していますが、公開サイト側で取得できない状況です。

管理画面でダンプするとユーザー情報が出ているのですが、公開サイト側に引き継がれないのでしょうか？

また、管理者かどうかを判定し、処理を振り分ける方法をご存知の方おられましたら、ご教授いただけると幸いです。

使用しているテーマは、「storefront」です。  
<https://ja.wordpress.org/themes/storefront/>

[code]

    wp_get_current_user()
    
    object(WP_User)#9332 (8) {
      ["data"]=>
      object(stdClass)#9345 (0) {
      }
      ["ID"]=>
      int(0)
      ["caps"]=>
      array(0) {
      }
      ["cap_key"]=>
      NULL
      ["roles"]=>
      array(0) {
      }
      ["allcaps"]=>
      array(0) {
      }
      ["filter"]=>
      NULL
      ["site_id":"WP_User":private]=>
      int(0)
    }
    
[/code]


CC BY-SA 4.0
2020-06-15T09:00:46.957
67680
2020-06-15T11:10:28.440
40382
question
wordpress
管理者権限によって公開サイトの処理を分けたい


”公開サイト側”がインストールしているwordpressのルートなら、(見当はずれならごめんなさい)  
見ている内容が違うような。 テーマのindex.php先頭に以下のコードを入れるとログインしているユーザ情報が表示されると思います。

[code]

    if (is_user_logged_in()){
        print_r(wp_get_current_user());
        exit;
    }
    
[/code]

追伸、`require $_SERVER['DOCUMENT_ROOT'].'/wp-config.php';`
とかでwordpressディレクトリ外でget_posts関数などを呼び出している場合は、ユーザ情報は読み出せません。

[code]

    add_action( 'wp_login', 'hoge_login', 10, 2 );
    
[/code]

を使用してcookieなどに、ハッシュ化したlogin情報をセットするしかないと思います。


CC BY-SA 4.0
2020-06-15T10:20:13.903
67685
2020-06-15T11:10:28.440
2020-06-15T11:10:28.440
22793
22793
67680
answer