カスタム投稿タイプと専用のユーザー権限(完結編)」への10件のフィードバック

  1. はじめまして。こちらの記事を参考にカスタム投稿タイプ専門のユーザ権限を作成しております。
    記事後半「ログイン後の画面遷移」部分のソース内のmy_login_redirect()ですが、ログインしていない状態で/wp-login.phpへ行くと”Warning: in_array() expects parameter 2 to be array, null given in /省略/myplugin.php on line xxx”警告が表示されてしまいます。
    5行目、in_array(“report_author”, $user->roles)の$user->rolesの値がnullの為発生してると思うのですが解決方法ありますでしょうか。

    環境は以下のとおりとなっております。
    ・Macローカル環境(MAMP)
    ・php.iniでdisplay_errors = On、error_reporting = E_ALL & ~E_NOTICE
    ・WordPress3.4.2
    ・PHP5.3.6

    よろしくお願い致します。

    1. こんにちは。こちらでも確認しました。
      大本になったCodexのページに記載されている例にあわせて(+少し変更して)みました。
      function my_login_redirect( $redirect_to, $request, $user ) {
      //is there a user to check?
      if( !empty( $user->roles ) ) {
      //check for admins
      if( in_array( "report_author", $user->roles ) ) {
      // redirect them to the default place
      return home_url("/wp-admin/index.php");
      } else {
      return home_url("/wp-admin/");
      }
      }
      }
      add_filter("login_redirect", "my_login_redirect", 10, 3);

      一応こちらではエラーが出ないことを確認しています。

      1. ご回答ありがとうございます。解決致しました。

        一箇所、register_post_type( ‘report’, $report_args );のオプション内ですが、
        menu_position => “5”,

        menu_position => 5,
        かと思われます。ご確認ください。

        よろしくお願い致します。

  2. はじめまして。

    大変有用、参考になる記事をありがとうございます。

    あつかましいお願いですが

    権限グループ「レポート投稿者」によるレポートの新規追加を出来なくするにはどうすればいいでしょうか?投稿自体は管理者ユーザで行い、既にある投稿に対してのみ「レポート投稿者」に属するユーザが編集が出来ることを実現したいのですが。

    自分でいろいろ試してみたのですが、PHP、WordPressともに浅学の自分には実現することができませんで。

    お手数ですがアドバイスいただけると大変助かります。何卒よろしくお願い申し上げます。

  3. 古い記事へのコメントですみません。
    権限グループやそれに登録した権限はデータベースに記録されているので、initフックで毎回登録せずにプラグイン初期化部分で処理したほうがいいと思います。

    権限をつけたり外したりを試行錯誤したときに、たいぶ嵌りました(^^;

  4. はじめまして
    Gatespaceさんの記事を参考にしてオリジナル権限のあるカスタムポストを設置しました。

    こちらのカスタムポストにadvanced custom fieldsで作ったフィールドを設置したいのですが、ルールで投稿タイプ=>report、やユーザー(ログインしているユーザーも同様)=>オリジナル権限を設定しても、投稿画面には反映されませんでした。
    ‘capability_type’ => ‘post_report’,

    ‘capability_type’ => ‘post’,
    にするとカスタムフィールドは反映されましたが、当然カスタムポストだけでなく、通常の投稿にアクセスできてしまいます。このcapability_typeのままで、advanced custom fieldsを設置することはできないでしょうか?

    1. Advanced Custom Fields がオリジナルの権限に対応していないのでは?

Comments are closed.