[Résolu] Désactiver la barre WordPress pour les utilisateurs (thème enfant) (Créer un compte)

  • WordPress :5.7
  • Statut : résolu
  • Ce sujet contient 6 réponses, 4 participants et a été mis à jour pour la dernière fois par Flobogo, le il y a 19 secondes.
7 sujets de 1 à 7 (sur un total de 7)
  • Auteur
    Messages
  • #2373179
    Ben EuropRaid
    Participant
    Initié WordPress
    3 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL :
    • Thème utilisé :  Astra Pro
    • Extensions en place :
    • Nom de l’hébergeur : O2Switch
    • Adresse du site : http://www.alpinaraid.fr

    Problème(s) rencontré(s) :

    Bonjour,

    J’essaye de désactiver la barre WordPress pour les utilisateurs de mon site et de bloquer l’accès automatique au tableau de bord WordPress après connexion. Jusqu’à présent, j’utilisais le code suivant:

    add_action(‘after_setup_theme’, ‘remove_admin_bar’);
    function remove_admin_bar() {
    if (!current_user_can(‘administrator’) && !is_admin()) {
    show_admin_bar(false);
    }
    }
    add_action(‘admin_init’, ‘gkp_restrict_access_administration’);
    function gkp_restrict_access_administration(){
    if ( current_user_can(‘subscriber’) ) {
    wp_redirect( get_bloginfo(‘url’) );
    exit();
    }
    }

     

    J’ai mis en place récemment un thème enfant, seulement ce code ne produit pas ses effets sur le functions.php de mon thème enfant.

    Ci-dessous mon code sur le thème enfant:

    <?php
    /**
    ** activation theme
    **/
    add_action( ‘wp_enqueue_scripts’, ‘theme_enqueue_styles’ );
    function theme_enqueue_styles() {
    wp_enqueue_style( ‘parent-style’, get_template_directory_uri() . ‘/style.css’ );

    add_action(‘after_setup_theme’, ‘remove_admin_bar’);
    function remove_admin_bar() {
    if (!current_user_can(‘administrator’) && !is_admin()) {
    show_admin_bar(false);
    }
    }
    add_action(‘admin_init’, ‘gkp_restrict_access_administration’);
    function gkp_restrict_access_administration(){
    if ( current_user_can(‘subscriber’) ) {
    wp_redirect( get_bloginfo(‘url’) );
    exit();
    }
    }

    ?>

    Pourriez-vous m’expliquer pourquoi il ne fonctionne pas sur le thème enfant?

    Merci d’avance pour votre aide !

    #2373186
    ferman
    Participant
    Maître WordPress
    3845 contributions

    Bonjour,

    Chez moi votre code marche. Avez vous d’autres fonctions qui fonctionnent correctement dans functions.php de votre thème enfant?

    #2373230
    Ben EuropRaid
    Participant
    Initié WordPress
    3 contributions

    Bonjour,

    Non c’est la seule fonction que j’ai dans mon thème enfant. Mais du coup je ne suis pas certain que mon thème enfant fonctionne bien… Je vous ai envoyé le code complet de mon fichier functions.php

    Pour créer le thème enfant, j’ai créer un “astra2” dans le dossier thèmes de mon FTP. Dans celui-ci j’ai le fichier functions.php, le fichier heander.php et le fichier style.css.

    Est-ce mon thème enfant qui ne fonctionne pas? Comment m’en assurer?

     

    EDIT: Je viens de recréer mon thème enfant en utilisant le générateur officiel du thème Astra: https://wpastra.com/child-theme-generator/

    La fonction ne fonctionne toujours pas sur ce nouveau thème enfant.

    • Cette réponse a été modifiée le il y a 2 semaines et 1 jour par Ben EuropRaid.
    • Cette réponse a été modifiée le il y a 2 semaines et 1 jour par Ben EuropRaid.
    #2373251
    ferman
    Participant
    Maître WordPress
    3845 contributions

    Voilà ce que j’ai en entête de mon thème enfant (un autre thème). le PHP_INT_MAX n’est pas nécessaire.

    
    add_action( 'wp_enqueue_scripts', 'enqueue_child_theme_styles', PHP_INT_MAX);
    
    function enqueue_child_theme_styles() {
    	wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
    	wp_enqueue_style( 'child-style', get_stylesheet_uri(), array( 'parent-style' ) );
    }

    Autrement il y a un très bon configurateur de thèmes-enfants.

    Pourquoi avez-vous un header dans votre thème enfant? Il est modifié par rapport à celui du thème parent? Si oui, essayez en l’enlevant au cas où il contiendrait une erreur.

    Enfin, je suppose que le code que vous utilisez est bien formaté (celui que vous donnez plus haut ne l’est pas ) il y a des guillemets ‘ incorrects.

    • Cette réponse a été modifiée le il y a 2 semaines et 1 jour par ferman.
    #2373311
    Ben EuropRaid
    Participant
    Initié WordPress
    3 contributions

    EDIT: J’ai recréé le thème à l’aide du plugin Child Theme Configurator et j’ai ajouté la fonction. Cela semble fonctionner.

    Je vous remercie pour votre aide !

    • Cette réponse a été modifiée le il y a 2 semaines par Ben EuropRaid.
    #2374469
    Caryn
    Participant
    Initié WordPress
    1 contributions

    Bonjour

    J’ai un problème un peu similaire à celui de Ben EuropRaid.

    Etant novice, pour éviter tout risque de casser mon site, j’ai créé un site dupliqué, puis un thème enfant (d’abord sur le site dupliqué puis sur le site en production), pour finalement créer des modèles de pages personnalisées. Ces modèles me permettent d’intégrer des requêtes SQL pour récupérer les informations de ma base de données, et créer des pages présentant les coordonnées des magasins avec lesquels je travaille.

    Mais, je me suis aperçue hier que lorsque j’accède à une de ces pages magasins, la barre d’admin s’affiche. Elle s’affiche même si je me connecte sur un navigateur privé ! Comme Ferman l’a suggéré dans ce post, j’ai télécharge l’extension Hide Administrator Bar Settings, mais cela ne change rien ! J’ai le même problème pour les pages créées sur le site dupliqué et sur le site de prod.

    Et je ne suis pas certaine que ça vienne du thème enfant. Je vous mets le fichier function.php. Pensez-vous que ça puisse venir de là ? Que dois-je faire pour y remédier ?

    Merci

    <?php
    // Exit if accessed directly
    if ( !defined( 'ABSPATH' ) ) exit;
    
    // BEGIN ENQUEUE PARENT ACTION
    // AUTO GENERATED - Do not modify or remove comment markers above or below:
    
    if ( !function_exists( 'chld_thm_cfg_locale_css' ) ):
        function chld_thm_cfg_locale_css( $uri ){
            if ( empty( $uri ) && is_rtl() && file_exists( get_template_directory() . '/rtl.css' ) )
                $uri = get_template_directory_uri() . '/rtl.css';
            return $uri;
        }
    endif;
    add_filter( 'locale_stylesheet_uri', 'chld_thm_cfg_locale_css' );
    
    if ( !function_exists( 'chld_thm_cfg_parent_css' ) ):
        function chld_thm_cfg_parent_css() {
            wp_enqueue_style( 'chld_thm_cfg_parent', trailingslashit( get_template_directory_uri() ) . 'style.css', array( 'bootstrap','hestia-font-sizes' ) );
        }
    endif;
    add_action( 'wp_enqueue_scripts', 'chld_thm_cfg_parent_css', 10 );
    
    
    
    
    // END ENQUEUE PARENT ACTION
    function.php

    #2374557
    Flobogo
    Gestionnaire du forum
    Maître WordPress
    17098 contributions

    Bonjour @Caryn,

    Il est déconseillé de poster sur un topic résolu, surtout pour un sujet dans un contexte différent.

    Votre problème ressemble à un problème de cache :

    • soit vous vous débrouillez pour trouver vous-même la solution, en vidant vos caches (extension de cache et navigateur)
    • soit vous ouvrez votre propre sujet si vous avez besoin de plus d’aide
7 sujets de 1 à 7 (sur un total de 7)
  • Vous devez être connecté pour répondre à ce sujet.