質問: wp_get_current_user(); $wp_query->set( 'author', $user->ID ); print "パターン3"; } $wp_query->set( 'author', 3 ); print "実行"; } add_action( 'pre_get_comments', 'exclude_other_comments' ); } ``` pre_get_commentsをフックに同じように記述しているのですが、 「パターン2」の処理にしかなりません。 「パターン1」を通らないということは、 $_REQUEST['post_type']の段階で問題があるということかと思います。 POSTに問題があるということがいまいちイメージできないので $_REQUEST['post_type']の中身を調べようと思いましたが、 出力の方法が分からず断念しました。 また、最終的にcurrent_user_can()からユーザーのIDを取得し 該当ユーザーの記事から更にコメントのついている記事を表示できる クエリにすればいいと思うので $wp_queryの中身を調べ、試行錯誤でクエリを組み立てようと思いましたが、 こちらも出力の方法が分からず断念しました。 やり方が分かる方がいらっしゃいましたら お教え願えますでしょうか? よろしくお願い致します。 wordpressのバージョン 4.9.5–ja PHPのバージョン 7.1.2
回答: ホーム画面(wp-admin/index.php)で`$_REQUEST['post_type']`に値が入ることは無いです。 そもそも必要ない指定なのでそれは無視すればよいでしょう。 【ユーザーの種類と権限 - WordPress Codex 日本語版】 https://wpdocs.osdn.jp/ユーザーの種類と権限#ユーザーレベル > > **ユーザーレベルは最終的に、バージョン3.0で非推奨となりました。** > > > 【WordPress:ユーザー権限や情報によって条件分岐を行う方法 | NxWorld】 `author` はコメント投稿者なので、たぶん `post_author` だと思います。 ``` function exclude_other_comments( $wp_comment_query ) { if ( is_admin() && !current_user_can( 'administrator' ) ) { $user = wp_get_current_user(); $wp_comment_query->query_vars[ 'post_author' ] = $user->ID; } } // 未検証 add_action( 'pre_get_comments', 'exclude_other_comments' ); ``` 【WP_Comment_Query | Class | WordPress Developer Resources】 【クラスリファレンス/WP Comment Query - WordPress Codex 日本語版】 https://wpdocs.osdn.jp/クラスリファレンス/WP_Comment_Query