J'essaie d'empêcher un utilisateur, outre l'administrateur, d'accéder à la page d'inscription et de réinitialiser la page de mot de passe s'ils sont déjà connectés. J'ai les éléments suivants:
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');
Je l'ai testé et ça ne marche pas. Quelqu'un peut-il m'aider s'il vous plaît? Merci.
Un problème est que vous vous connectez trop tôt. Référencez la référence d'action de l'API de crochets . Les conditions de modèle, telles que is_page()
, ne sont disponibles qu'une fois la requête configurée et analysée. La première action que vous pouvez généralement utiliser en toute sécurité sur les conditions de requête est pre_get_posts
. Vous êtes accroché à init
qui se déclenche beaucoup plus tôt:
muplugins_loaded
Après le chargement des plugins à utiliserregistered_taxonomy
Pour la catégorie, post_tag, etc.registered_post_type
Pour post, page, etc.plugins_loaded
Après le chargement des plugins actifs et des fonctions pluggablessanitize_comment_cookies
setup_theme
load_textdomain
Pour le domaine par défautafter_setup_theme
Généralement utilisé pour initialiser les paramètres/options du thème.auth_cookie_malformed
auth_cookie_valid
set_current_user
init
Typiquement utilisé par les plugins pour initialiser. L'utilisateur actuel est déjà authentifié à cette heure. widgets_init
Utilisé pour enregistrer les barres latérales. Ceci est déclenché sur 'init', avec une priorité de 1.register_sidebar
Pour chaque barre latérale et chaque pied de pagewp_register_sidebar_widget
Pour chaque widgetwp_default_scripts
(ref array)wp_default_styles
(ref array)admin_bar_init
add_admin_bar_menus
wp_loaded
après le chargement complet de WordPressparse_request
Permet de manipuler le traitement des demandes HTTP (tableau de références) send_headers
Permet la personnalisation des en-têtes HTTP (ref array)parse_query
(tableau de référence)pre_get_posts
Expose l'objet requête-variables avant l'exécution d'une requête. (ref array) posts_selection
wp
après que l'objet WP soit configuré (tableau de référence)template_redirect
get_header
wp_enqueue_scripts
Étant donné la nature de ce que vous essayez de faire, je vous recommanderais de vous connecter à template_redirect
.