管理者以外のユーザーがアクセスして登録ページにアクセスできないようにし、パスワードページが既にログインしている場合はリセットするようにしています。
function redirect_loggedin_users() {
// Maybe use is_user_logged_in() instead?
if (!current_user_can('manage_options') && is_page(array(2090, 2092))) {
wp_redirect(home_url());
exit();
}
}
add_action('init', 'redirect_loggedin_users');
私はそれをテストしましたが、うまくいきません。誰かが私を助けてもらえますか?ありがとう。
1つ問題は、あなたが早すぎる時期に夢中になるということです。 フックAPIアクションリファレンス を参照してください。 is_page()
のようなテンプレート条件は、クエリが設定され解析された後にのみ利用可能です。通常、クエリ条件に安全に頼ることができる最も早いアクションはpre_get_posts
です。あなたはinit
に夢中になっています。
muplugins_loaded
必須プラグインが読み込まれた後registered_taxonomy
category、post_tagなど.registered_post_type
投稿、ページなど.plugins_loaded
アクティブなプラグインとプラグイン可能な関数がロードされた後sanitize_comment_cookies
setup_theme
load_textdomain
デフォルトドメインの場合after_setup_theme
一般的にテーマ設定/オプションを初期化するために使われます。auth_cookie_malformed
auth_cookie_valid
set_current_user
init
初期化のためにプラグインによって通常使用されます。現在のユーザーはこの時点までに既に認証されています。widgets_init
サイドバーを登録するために使用されます。これは 'init'で発生し、優先度は1です。register_sidebar
各サイドバーとフッター領域wp_register_sidebar_widget
各ウィジェット用wp_default_scripts
(参照配列)wp_default_styles
(参照配列)admin_bar_init
add_admin_bar_menus
wp_loaded
parse_request
HTTPリクエスト処理(ref配列)の操作を許可しますsend_headers
HTTPヘッダのカスタマイズを可能にします(ref配列)parse_query
(参照配列)pre_get_posts
クエリが実行される前にクエリ変数オブジェクトを公開します。 (参照配列)posts_selection
wp
(参照配列)template_redirect
get_header
wp_enqueue_scripts
あなたがやろうとしていることの性質を考えると、私はtemplate_redirect
にフックすることをお勧めします。