Impossible d’éditer et modifier le fichier Funcions.php (Créer un compte)

  • WordPress :5.7
  • Statut : non résolu
15 sujets de 1 à 15 (sur un total de 19)
  • Auteur
    Messages
  • #2372480
    Alama
    Participant
    Padawan WordPress
    74 contributions

    Bonjour,

    Ma configuration WP actuelle
    ____________________

    • Version de PHP/MySQL : 5.7
    • Thème utilisé : Divi
      Extensions en place : Yoast Duplicate Post,WP-Optimize – Clean, Compress, Cache
      WP Super Cache,UpdraftPlus – Sauvegarde/Restauration,Ultimate Member,Toolbox for Asgaros Forum,
      Supreme Modules Lite – Divi Theme, Extra Theme and Divi Builder,Sticky Menu (or Anything!) on Scroll,Redirection,Real-Time Find and Replace,Preloader,Popups for Divi,Nextend Social Login,MonsterInsights – Google Analytics pour WordPress,Layouts for Divi,Instant Images,DIVI Section Enhancer,Divi Lightbox for Images,DIVI Enhancer,Content Views,Asgaros Forum,Animate It!,
      All 404 Redirect to Homepage,Akismet Anti-Spam
    • Nom de l’hébergeur : infomaniak
    • Adresse du site : blazorblog.fr
    • ___________________________________________________________________________________

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

    Quand je modifie la Functions.php de mon thème enfant, ça refuse d’enregistrer.

    le code que j’insère:
    <div class=”code-embed-wrapper”>

    function wp_get_current_user() {
    return _wp_get_current_user();
    }
    add_shortcode ('get current user','wp_get_current_user');
    //capture current_user infos

    </div>
    J’ai cette erreur:
    Impossible d’envoyer un message au site afin de vérifier l’absence d’erreurs fatales. Du coup, la modification PHP a été annulée. Vous allez devoir téléverser votre fichier PHP modifié par un autre moyen, par exemple en utilisant un client FTP.

    • Ce sujet a été modifié le il y a 8 mois et 2 semaines par Alama.
    #2372484
    mathieu42
    Participant
    Maître WordPress
    911 contributions

    c’est parce que le “code” du shortcode est invalide donc une erreur PHP est produite.

    le code ne peux pas contenir d’espace ou des caractères & / < > [ ] =

    #2372605
    Alama
    Participant
    Padawan WordPress
    74 contributions

    Bonjour Mathieu, merci pour ta réponse, Mais je ne vois pas un seul de ces caractères interdit dans mon code.. (le code html qui n’est pas dans le bloc code est un ghost, il ne devrait pas exister dans mon sujet, c’est probablement une erreur de frappe car j’utilise un presse papier multiple).

    #2372613
    mathieu42
    Participant
    Maître WordPress
    911 contributions

    le problème vient des espaces dans le code “get current user”.

    je viens de voir aussi un autre souci, la fonction “wp_get_current_user” est une fonction utilisée par wordpress donc en utilisant ce nom, vous remplacez la fonction de base.

    #2372614
    Alama
    Participant
    Padawan WordPress
    74 contributions

    Dans ce cas, je ne sais pas comment récupérer le Display_name de l’utilisateur connecté, je cherche simplement simplement à afficher “bonjour [User_name] ” en haut de ma page d’accueil..

    #2372615
    Alama
    Participant
    Padawan WordPress
    74 contributions

    J’ai trouvé ça:
    https://developer.wordpress.org/reference/functions/wp_get_current_user/

    C’est sensé me retourné un objet, je m’attend donc à trouver une liste des propriétés ou objets dedans, et peut être un current_user.name ou quelque chose dans le genre..

     

    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par Alama.
    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par Alama.
    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par Alama.
    #2372623
    ferman
    Participant
    Maître WordPress
    4610 contributions

    Bonjour,

    Peut-être en essayant ça?

    function wp_get_current_user2() {
    	if(is_user_logged_in())
    	return '<div class="mon_nom">'.'bonjour :'.'   '.(_wp_get_current_user()->display_name).'</div>';
    }
    add_shortcode ('get_current_user','wp_get_current_user2');

    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par ferman.
    #2372631
    Alama
    Participant
    Padawan WordPress
    74 contributions

    Bonjour Ferman, c’est gentil, mais malheureusement, non, toujours la même erreur .. je vais essayer en modifiant direct le fichier via “FTP”..
    Je ne pense pas que le soucis vienne d’un code ou l’autre, il doit y avoir une autre raison, je chercherai après sur un site de test..

    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par Alama.
    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par Alama.
    #2372636
    Alama
    Participant
    Padawan WordPress
    74 contributions

    Zut!! nada, peau de balle, peanuts!

    si je modifie en dur, j’ai ça:

    <b>Fatal error</b>: Cannot redeclare wp_get_current_user() (previously declared in /home/clients/ea2e0947794d4c1fef5c9bd6c1c83adb/blazorblog/wp-includes/pluggable.php:70) in <b>/home/clients/ea2e0947794d4c1fef5c9bd6c1c83adb/blazorblog/wp-content/themes/Divi-Community/functions.php</b> on line <b>37</b>
    <div class=”wp-die-message”>

    Une erreur critique est survenue sur ce site. Veuillez consulter la boite de réception de l’e-mail d’administration de votre site pour plus d’informations.

    </div>

    Bon, ben ça dit qu’apparemment, c’est un double emploi.. je vais creuser le truc..

     

    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par Alama.
    #2372645
    ferman
    Participant
    Maître WordPress
    4610 contributions

    Oui, il doit y avoir un truc spécial. Chez moi ça fonctionne ( je n’utilise pas  divi mais ça n’a certainement rien à voir).

    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par ferman.
    #2372651
    Loraga
    Participant
    Chevalier WordPress
    119 contributions

    Ce message d’erreur :

    <b>Fatal error</b>: Cannot redeclare wp_get_current_user()

    ne dois pas apparaitre avec le code donné par Ferman. PHP vous indique simplement qu’une fonction a été déclarée deux fois. Dans son code, Ferman a ajouté un “2” à la fin du nom :

    function wp_get_current_user2() { ... }

    Ce message d’erreur n’aurait donc plus lieu d’apparaitre si le nom de votre fonction est bien unique. Avez-vous bien changé le nom de votre fonction en testant le code de Ferman…?

    Une bonne pratique communément admise quand on déclare des fonctions dans son fichier functions.php est d’ajouter un préfixe devant le nom de vos fonctions persos. Ça permet d’être sûr de ne pas faire doublon, en général on choisira le nom du site comme préfixe, par exemple :

    function nom_du_site_wp_get_current_user()

    #2372658
    Alama
    Participant
    Padawan WordPress
    74 contributions

    Salut Loraga, je vais essayer pour voir, en effet, l’erreur dit qu’il y a un doublon.. j’était occupé à étudier les répertoires et fichiers de WP, il faut toujours comprendre les choses et les pourquoi ..

    #2372670
    Alama
    Participant
    Padawan WordPress
    74 contributions

    Loraga, je suis occupé à essayer de comprendre, il semble que ce soit le fait d’invoker “wp_get_current_user” qui génère l’erreur fatale et pas le nom que je donne à ma fonction, le site ne fonctionne plus du tout. heureusement je peux remettre en état par FTP. si, au lieu de cette fonction, j’écris  return ‘hello’;  je n’ai plus d’erreur.
    Ce qui est semble être en accord avec ce que dit l’erreur. Je dois trouver où se trouve ce 1er appel. d’après l’erreur, ce serait ici:
    /home/clients/ea2e0947794d4c1fef5c9bd6c1c83adb/blazorblog/wp-includes/pluggable.php:70. Là où je me pose mille questions, c’est que ce Path est un Path local qui n’a rien à voir avec le site qui est actuellement stocké sur un serveur distant..  je fouille mes fichiers distants. 🙂

     

    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par Alama.
    #2372676
    Alama
    Participant
    Padawan WordPress
    74 contributions

    Voilà, je viens de trouver le 1er appel comme le dit l’erreur dans le fichier plugable.php ligne 17, le code est celui et j’y ai ajouté la fabrication de mon schortcode ligne 19.

    if ( ! function_exists( 'wp_get_current_user' ) ) :
    	/**
    	 * Retrieve the current user object.
    	 *
    	 * Will set the current user, if the current user is not set. The current user
    	 * will be set to the logged-in person. If no user is logged-in, then it will
    	 * set the current user to 0, which is invalid and won't have any permissions.
    	 *
    	 * @since 2.0.3
    	 *
    	 * @see _wp_get_current_user()
    	 * @global WP_User $current_user Checks if the current user is set.
    	 *
    	 * @return WP_User Current WP_User instance.
    	 */
    	function wp_get_current_user() {
    		return _wp_get_current_user();
    	}
    	add_shortcode ('get current user','_wp_get_current_user');
    endif;

    Par contre, j’ignore si ce fichier sera écrasé lors d’une mise à jour quelconque.. je vais faire des tests pour vérifier tout ça et je reviens ici vous faire part de mes résultats 🙂

    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par Alama.
    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par Alama.
    #2372730
    Alama
    Participant
    Padawan WordPress
    74 contributions

    OK! Bon, Après avoir tout essayé et même après avoir réinstallé WP (ma version sandbox), j’ai pu facilement éviter l’erreur de doublon, mais impossible de modifier mon functions.php, retour case départ. Finalement, avec petit code php, j’ai cherché à pouvoir afficher son “echo” où je voulais, j’ai tout de suite pensé bloc texte ou code, finalement, j’ai fini par trouver un tout petit plugin de chez xyz qui transforme les codes php en schortcode et là, c’est le miracle !! 🙂

    <?php
    global $current_user;
    if ( isset($current_user) ) {
        echo $current_user->user_login;
    }
    ?>

    ce qui m’a donné: [xyz-ips snippet=”currentUser”] que je peux utiliser n’importe où 🙂

    J’ignore comment on fait un plugin, je m’y intéresserai + tard, mais ce genre d’extension ne doit pas être super compliquée..
    Sur ce je vous souhaite à tous une bonne nuit.. 😉

     

    • Cette réponse a été modifiée le il y a 8 mois et 2 semaines par Alama.
15 sujets de 1 à 15 (sur un total de 19)
  • Vous devez être connecté pour répondre à ce sujet.