Partage
  • Partager sur Facebook
  • Partager sur Twitter

MOOC Propulsez votre site avec WordPress

    22 octobre 2014 à 7:49:27

    Bonjour,

    Chapitre 2-Partie 2:

    J'ai cree dans mon dossier enfant un fichier functions.php et quand je rentre le code pour creer un widget je ne peux plus charger ma page web, la page est blanche:

    <?php
    2add_action('widgets_init','zero_add_sidebar');
    3function zero_add_sidebar()
    4{
    5    register_sidebar(array(
    6    'id' => 'my_custom_zone',
    7    'name' => 'Zone supérieure',
    8    'description' => 'Apparait en haut du site',
    9    'before_widget' => '<aside>',
    10    'after_widget' => '</aside>',
    11    'before_title' => '<h1>',
    12    'after_title' => '</h1>'
    13    ));
    14}

    Je ne sais pas si le probleme vient du serveur ou du code....mais ca ne fonctionne pas du tout chez moi.

    Quand vous dites au'il faut inscrire ce code dans un fichier functions.php, faut-il en creer un nouveau dans le dossier enfant ou faut-il copier-coller le parent et ajouter a la fin la ligne de code???

    Pour info, je travaille sur le theme 'Enigma'.

    Merci bien de m'eclairer.

    • Partager sur Facebook
    • Partager sur Twitter
      22 octobre 2014 à 9:27:17

      Bonjour margauxmacaire,

      Ce que tu peux faire dans un premier temps, c'est mettre cette ligne :

      define('WP_DEBUG', true);


      dans le fichier config.php à la racine de ton wordpress afin de voir l'erreur qui est générée et non pas la page blanche.

      • Partager sur Facebook
      • Partager sur Twitter
        22 octobre 2014 à 9:37:23

        où peut on upload nos travail  sur le site j'ai ne  me retrouve pas ? s'il y a quelqu'un qui peut m'aider

        merci

        -
        Edité par depanama 22 octobre 2014 à 9:38:50

        • Partager sur Facebook
        • Partager sur Twitter
          22 octobre 2014 à 11:38:28

          AdrienRouxel a écrit:

          Bonjour à tous,

          À mon tour d'être bloqué. J'en suis à la partie 3, chapitre 2 "Créer un Widgets".

          J'ai tout suivi jusqu'à l'affichage du widget dans la zone dédié et cela fonctionne correctement. Cependant, l'étape suivante : "le rendu final" évoque ceci : "il faut maintenant modifier la méthode widget() afin d’afficher le paramètre titre et le champ d’enregistrement des emails."

          Où dois-je insérer ce morceau de code ? Dans quel fichier ? J'ai essayé à plusieurs endroits, et il fait boguer le site systématiquement !

          <?php
          public function widget($args, $instance)
          {
              echo $args['before_widget'];
              echo $args['before_title'];
              echo apply_filters('widget_title', $instance['title']);
              echo $args['after_title'];
              ?>
              <form action="" method="post">
                  <p>
                      <label for="zero_newsletter_email">Votre email :</label>
                      <input id="zero_newsletter_email" name="zero_newsletter_email" type="email"/>
                  </p>
                  <input type="submit"/>
              </form>
              <?php
              echo $args['after_widget'];
          }

          Merci par avance. 

          Bonjour,

          Tu dois mettre le code dans cette partie-ci (enfin je pense). Je n'ai pas pu tester car je n'arrive pas à faire apparaître mon widget (cfr message du 21).

          public function widget($args, $instance)
              {
                  echo 'widget newsletter'; <= mettre le code ici
              }

          J'espère avoir aidé.

          • Partager sur Facebook
          • Partager sur Twitter
            22 octobre 2014 à 12:19:13

            @depanama
            J'attends moi aussi la réponse ...
            • Partager sur Facebook
            • Partager sur Twitter
              22 octobre 2014 à 16:06:46

              @margauxmacaire : tu dois créer un nouveau fichier functions.php dans le thème du code, il est précisé dans le chapitre 2-2 qu'il sera lu en plus du fichier du thème parent. Je ne vois pas de problème dans le code que tu as posté, en revanche je te conseille d'activer l'affichage des erreurs PHP comme préconisé par Nagase.

              @AdrienRouxel : il faudrait là aussi avoir plus d'informations sur l'erreur produite par WordPress, en activant le mode debug.

              @Ginzhu : Quelques vérifications à faire :
              Le plugin est-il bien activé ?
              As-tu bien ajouté le widget dans la barre de widgets dans l'administration ?
              Il y a un fichier pagetitle.php qui est inclus dans ton code, tu ne l'as pas posté, est-il bien présent ?
              Quelle est ta version de PHP ? (vérifie que c'est bien 5.3 minimum)
              En dernier recours, essaye d'activer le mode debug, il y a peut-être une autre erreur qui survient lors de l'affichage.

              Concernant l'upload de vos travaux sur la plateforme, il me semble que Julien_OC a répondu sur la page précédente. En cas de soucis vous pouvez toujours contacter contact@openclassrooms.com

              -
              Edité par Midnight Falcon 22 octobre 2014 à 16:11:19

              • Partager sur Facebook
              • Partager sur Twitter
                22 octobre 2014 à 17:54:28

                Bonjour,

                Bloqué moi aussi !  (wp 4.0)

                A la création d'un plugin, Rajouter un filtre simple,

                 j'ai crée mon plugin dans l'arborescence j'ai bien mon plugin activé dans le backend.

                mon fichier zero.php :

                <?php
                /*
                Plugin Name: Zero plugin
                Plugin URI: http://zero-plugin.com
                Description: Un plugin d'introduction pour le développement sous WordPress
                Version: 0.1
                Author: Pat
                Author URI: http://votre-site.com
                License: GPL2
                */
                
                
                
                function zero_modify_page_title($title) {
                     $title .= ' | Avec le plugin des zéros !' ;
                     return $title;
                }
                
                add_filter('wp_title', 'zero_modify_page_title', 20) ;

                et rien ne se passe sur mes pages : le titre n'est pas modifié !

                Par contre le tire de la fenêtre de mon navigateur reprends bien la modif du titre.

                $title c'est quoi au juste ? uniquement ce qui s'affiche sur le titre de la fenêtre ?

                Help :(

                Pour moi pour récupérer le titre du post courant il faut utiliser

                get_the_title();




                -
                Edité par Triple Zero 22 octobre 2014 à 20:56:36

                • Partager sur Facebook
                • Partager sur Twitter
                  22 octobre 2014 à 19:23:27

                  melperret a écrit:

                  Bonsoir,

                  Ca commence très bien, je ne peux même pas exécuter le programme wamp. Je reçois le message suivant : "Impossible de démarrer le programme car il manque MSVCR110.dll sur votre ordinateur. Essayer de réinstaller le programme pour corriger ce problème". Merci de m'aider car je ne comprend pas le message et je suis totalement frustrée !

                  Il faut, comme mentionné au début de ce sujet, aller regarder dans la FAQ PHP, et plus précisément ce message et les suivants.

                  Pour parer à toute éventualité, il y a aussi ce sujet qui risque d'être utile.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    22 octobre 2014 à 20:12:12

                    Midnight Falcon a écrit:

                    @Ginzhu : Quelques vérifications à faire :

                    Le plugin est-il bien activé ? => oui

                    As-tu bien ajouté le widget dans la barre de widgets dans l'administration ? => Si c'est dans Apparence \ Widget : je n'ai rien du tout justement, c'est là que je bloque. Si c'est autre part, je ne comprends pas

                    Il y a un fichier pagetitle.php qui est inclus dans ton code, tu ne l'as pas posté, est-il bien présent ? => oui, je ne l'ai pas repris, mais il est bien là (j'ai même mis des commentaires pour tester...mais ça ne change rien)

                    Quelle est ta version de PHP ? (vérifie que c'est bien 5.3 minimum) => je suis en 5.4.12

                    En dernier recours, essaye d'activer le mode debug, il y a peut-être une autre erreur qui survient lors de l'affichage. => activé et pas d'erreur ( :-((( )

                    Je suis bloqué car quand je devrais faire le TP, ça risque de bloquer. Bon, je vais encore investiguer. Merci déjà pour l'aide.

                    -
                    Edité par Ghinzu 22 octobre 2014 à 20:12:36

                    • Partager sur Facebook
                    • Partager sur Twitter
                      22 octobre 2014 à 20:50:41

                      Je viens de faire quelques tests.

                      J'ai repris l'exercice de "base" => créer des plugins. 

                      Quand j'utilise le code ci-dessous, ça ne fonctionne pas

                      class Zero_Plugin
                      {
                          public function __construct()
                          {
                              include_once plugin_dir_path( __FILE__ ).'/pagetitle.php';
                              new Zero_Page_Title();
                          }
                      }

                      Avec le code ci-dessous.....ça fonctionne. Code qui est repris dans pagetitle.php par la suite.

                      class Zero_Plugin
                      {
                          public function __construct()
                          {
                              add_filter('wp_title', array($this, 'modify_page_title'), 20) ;
                          }
                      
                          public function modify_page_title($title)
                          {
                              return $title . ' | Avec le plugin des zéros !' ;
                          }
                      }
                      
                      new Zero_Plugin();

                      Je ne suis pas un pro de la POO, mais où est-ce que ça coince ? Qu'est ce qui ne s'initialise pas dans le premier code ? Pagetitle.php est bien orthographié pourtant.

                      Bref, j'espère avoir un peu avancé dans la résolution de mon problème.

                      Merci à ceux qui m'aideront ;-)

                      • Partager sur Facebook
                      • Partager sur Twitter
                        23 octobre 2014 à 16:27:53

                        Bonjour,

                        Je viens de trouver l'erreur. La classe zero_plugin n'était pas activée....il manquait donc ceci au code (et qui n'est pas repris dans le cours)

                        new Zero_Plugin();

                        Bref, je peux avancer dans le cours ;-) 

                        • Partager sur Facebook
                        • Partager sur Twitter
                          24 octobre 2014 à 6:02:13

                          Bonjour,

                          Je bute de nouveau sur un probleme dont je ne trouve pas l'erreur.

                          Partie traduction avec POedit.

                          J'utilise un theme enfant d'enigma ('enigma-child').

                          1) J'ai effectue la creation des fichiers fr_FR.po et fr_FR.mo (qui s'est faite automatiquement avec la creation de .po).

                          2) J'ai place ces 2 fichiers dans mon rep : wp-content/themes/enigma-child/languages.

                          3) J'ai inscris dans functions.php:

                          <?php 

                          load_theme_textdomain( 'enigma-child', get_stylesheet_directory() . '/languages' );

                          4) J'ai mis dans mon footer.php:

                          <?php _e('Test translation in french'); ?>

                          Cependant, quand je mets a jours ma page de site, j'ai toujours la ligne a traduire en anglais!!!

                          Je ne comprends pas pourquoi la traduction ne se fait pas....help me please.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            24 octobre 2014 à 11:46:11

                            Bonjour,

                            j'en suis à la partie 3.3 "Developpez un plugin complet/mettre à jour la base de donnée".

                            Je n'arrive pas à insérer dans la bdd.

                            En fait je ne sais pas trop où mettre la ligne de code : <?php add_action('wp_loaded', array($this, 'save_email'));?>

                            j'ai mis  la description de la fonction save_mail dans le fichier newletterwidget.php

                            Je ne comprends pas trop l'indication du cours :

                            Il faut maintenant utiliser une action pour connecter la méthode save_email() à l’affichage des pages du site. Pour cela, nous pouvons utiliser l’identifiant wp_loaded qui correspond à l’instant où l’application est chargée et où elle s’apprête à effectuer le rendu du thème pour la page demandée.

                            Merci à l'avance de votre réponse.

                            • Partager sur Facebook
                            • Partager sur Twitter
                              24 octobre 2014 à 12:04:46

                              Réponse à margauxmacaire

                              la traduction fonctionne bien pour moi

                              j'ai indiqué un 2ème paramètre à la fonction _e : le nom du thème

                              essaye <?php _e('Test translation in french', 'enigma-child'); ?>

                              Remarque :tu dois aussi avoir fait la traduction en français dans le logiciel poedit (j'utilise la version 1.5.7)

                              • Partager sur Facebook
                              • Partager sur Twitter
                                24 octobre 2014 à 12:52:03

                                Bonjour,

                                J'en suis encore à la création du widget et j'ai deux questions:

                                1° je n'ai pas bien compris l'utilité de ces entrées:

                                • before_widget : code HTML à afficher avant chaque widget ;

                                • after_widget : code HTML à afficher après chaque widget ;

                                • before_title : code HTML à afficher avant chaque titre de widget ;

                                • after_title : code HTML à afficher après chaque titre de widget.

                                2° Je voudrais installer ma zone de widgets en pied de page, j'ai bien créé la fonction dans un nouveau fichier functions.php de mon thème enfant, qui semble fonctionner puis que je la retrouve bien dans l'interface; en revanche, concernant la dynamic_sidebar() pour l'affichage dans le site, je voudrais l'insérer en pied de page. Un fichier footer.php avait déjà été créé lors de la modification de la signature de wordpress. Du coup, il y a deux commandes dans mon fichier: quelqu'un sait-il si la syntaxe est bonne?

                                <footer id="colophon" role="contentinfo">
                                    <div class="site-info">
                                        Copyright &copy 2014 Pink 3d. All rights reserved.
                                    </div>
                                <div><?php dynamic_sidebar('P3D_custom_zone');?></div>
                                </footer>

                                ... parce que seul le copyright s'affiche dans le site.

                                Au plaisir de vous re-lire.

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  24 octobre 2014 à 15:09:47

                                  Bonjour,

                                  Je viens de trouver la réponse à ma question :

                                  la fonction save_email + son appel doivent se faire dans le fichier newsletter.php

                                  idem pou la fonction add_admin_menu() ( chapitre 3.4 administration )

                                  les appels se font dans le constructeur de la class zero_newsletter.

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    24 octobre 2014 à 18:49:17

                                    Bonjour à toutes et à tous,

                                    Bon, alors moi je suis un petit peu en retard et je bloque au premier chapitre :honte:  :

                                    - J'ai téléchargé Wordpress et je l'ai décompressé dans le répertoire racine de mon serveur web (/var/www/wordpress)

                                    - Lorsque je vais à l'adresse http://localhost/wordpress, rien ne se passe. Tout ce que j'obtiens, c'est une erreur 404. Donc, j'ai pas du faire toukomifalè !

                                    - Est-ce que quelqu'un saurait m'expliquer pourquoi ?

                                    P.S : Je précise que http://localhost/phpmyadmin fonctionne.

                                    -
                                    Edité par Kaa'dem-85 24 octobre 2014 à 19:01:50

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    https://kaadem.wordpress.com
                                      24 octobre 2014 à 21:35:32

                                      Kaddem85 a écrit:

                                      Bonjour à toutes et à tous,

                                      Bon, alors moi je suis un petit peu en retard et je bloque au premier chapitre :honte:  :

                                      - J'ai téléchargé Wordpress et je l'ai décompressé dans le répertoire racine de mon serveur web (/var/www/wordpress)

                                      - Lorsque je vais à l'adresse http://localhost/wordpress, rien ne se passe. Tout ce que j'obtiens, c'est une erreur 404. Donc, j'ai pas du faire toukomifalè !

                                      - Est-ce que quelqu'un saurait m'expliquer pourquoi ?

                                      P.S : Je précise que http://localhost/phpmyadmin fonctionne.

                                      -
                                      Edité par Kaddem85 il y a environ 1 heure

                                      Bonjour,

                                      As-tu édité le fichier wp-config.php et mis les paramètres de ton installation (nom de la db, ...) ?

                                      Est-ce que le dossier avec wordpress est installé dans le bon dossier de ton serveur ?

                                      Si phpMyadmin fonctionne, c'est que le serveur est configuré et installé correctement.

                                      -
                                      Edité par Ghinzu 24 octobre 2014 à 21:37:16

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        25 octobre 2014 à 1:13:47

                                        Bonjour,

                                        http://fr.openclassrooms.com/forum/sujet/mooc-propulsez-votre-site-avec-wordpress?page=3#message-87564504 étant restée sans réponse, j'ai continué ce cours.

                                        Avec un peu de mal je dois dire par rapport à de nombreux cours que j'ai suivi sur des sujets a priori au moins aussi ardu (c, c++, php, php poo,  mysql, html ...) sur ce site que j'apprécie beaucoup depuis sa création (site du zéro).

                                        Je suis à nouveau bloqué. Impossible de créer la table d'email (partie 3.3) par

                                        register_activation_hook

                                        j'ai beau désactiver le widget, sa réactivation ne créée pas la table que faire ???

                                        zero.php

                                        class Zero_plugin {
                                            public function __construct() {
                                                include_once plugin_dir_path( __FILE__ ).'/page_title.php';
                                                include_once plugin_dir_path(__FILE__).'./newsletter.php';
                                                new Zero_Page_Title();
                                                new Zero_newsletter();
                                                register_activation_hook(__FILE__, array('Zero_newsletter', 'install'));
                                                register_uninstall_hook(__FILE__, array('Zero_newsletter', 'uninstall'));
                                                add_action('wp_loaded', array('Zero_newsletter', 'save_email'));
                                            }
                                        }
                                        
                                        new Zero_plugin;

                                        newsletter.php

                                        include_once plugin_dir_path(__FILE__).'./newsletter_widget.php';
                                        
                                        class Zero_newsletter {
                                            public function __construct() {
                                                add_action('widgets_init', function(){register_widget('Zero_newsletter_widget');});
                                            }
                                            public static function install() {
                                                global $wpdb;
                                                $wpdb->query("CREATE TABLE IF NOT EXISTS {$wpdb->prefix}zero_newsletter_email (id INT PRIMARY KEY, email VARCHAR(255) NOT NULL);");
                                            }
                                            public static function uninstall() {
                                                global $wpdb;
                                                $wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}zero_newsletter_email;");
                                            }
                                            public static function save_email()
                                            {
                                                if (isset($_POST['zero_newsletter_email']) && !empty($_POST['zero_newsletter_email'])) {
                                                    global $wpdb;
                                                    $email = $_POST['zero_newsletter_email'];
                                                    $row = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}zero_newsletter_email WHERE email = '$email'");
                                                    if (is_null($row)) {
                                                        $wpdb->insert("{$wpdb->prefix}zero_newsletter_email", array('email' => $email));
                                                    }
                                                }
                                            }
                                        }


                                        Merci de votre aide !

                                        -
                                        Edité par Triple Zero 25 octobre 2014 à 1:42:18

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          25 octobre 2014 à 1:36:51

                                          Bonsoir,

                                          Toujours pour la création de la table d'email dans la partie 3.3, la bonne requête est

                                          CREATE TABLE IF NOT EXISTS wp_zero_newsletter_email (id INT PRIMARY KEY  AUTO_INCREMENT, email VARCHAR(255) NOT NULL);

                                          si on ne précise pas AUTO INCREMENT on ne peut créer qu'un email ...

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            25 octobre 2014 à 9:16:48

                                            @Triple Zero

                                            Je te rassure (ou pas), j'ai aussi des messages où personne ne répond. Bref...

                                            Il te manque les "()" pour ta classe zero_plugin

                                            new Zero_plugin();

                                            Comme cité dans un message plus haut, le add_action doit se mettre dans le constructeur de la class zero_newsletter

                                            public function __construct() {
                                            ...
                                            add_action('wp_loaded', array('Zero_newsletter', 'save_email'));
                                            }

                                            Si tu as repris exactement le code présent dans le cours, ta table doit se créer (du moins chez moi oui).

                                            -
                                            Edité par Ghinzu 25 octobre 2014 à 9:19:19

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              25 octobre 2014 à 9:26:51

                                              @Kaddem85, es tu sur que ton répertoire racine est /var/www ? Essaie de déplacer le dossier WordPress dans /var/www/html, sur ta capture phpMyAdmin est un lien symbolique est pas un répertoire "réel"
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                25 octobre 2014 à 9:27:30

                                                Ghinzu a écrit:

                                                Bonjour,

                                                As-tu édité le fichier wp-config.php et mis les paramètres de ton installation (nom de la db, ...) ?

                                                Est-ce que le dossier avec wordpress est installé dans le bon dossier de ton serveur ?

                                                Si phpMyadmin fonctionne, c'est que le serveur est configuré et installé correctement.

                                                -
                                                Edité par Ghinzu il y a environ 11 heures


                                                Bonjour Ghinzu

                                                Tout d'abord, merci pour ton aide. Je viens d'éditer le fichier wp-config.php et ça ne fonctionne pas. Voici les valeurs que j'ai rentrées. Bien évidemment, j'ai modifié mon MdP et mon user_name juste pour faire la capture d'écran (xxxxx).

                                                Le dossier avec wordpress est installé sous var/www/ (comme tu peux le voir sur la capture d'écran du post précédent). 

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                https://kaadem.wordpress.com
                                                  25 octobre 2014 à 9:34:48

                                                  @Kaddem85

                                                  Les valeurs semblent correctes. As-tu déjà crée ta table "wordpress" dans phpmyadmin ? Si oui, dans le navigateur, en tapant localhost\wordpress\wp-admin, WP doit s'installer.

                                                  Comme le mentionne RenaudMG (et je ne travaille pas sous linux), es-tu sur d'être dans le bon répertoire de ton serveur (/var/www/html) ?

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    25 octobre 2014 à 9:53:38

                                                    Ghinzu a écrit:

                                                     Comme le mentionne RenaudMG (et je ne travaille pas sous linux), es-tu sur d'être dans le bon répertoire de ton serveur (/var/www/html) ?

                                                    C'est précisément la question que je me pose. o_O

                                                    @ RenaudMG, j'ai déplacé le fichier dans /var/www/html. Malheureusement toujours rien...



                                                    -
                                                    Edité par Kaa'dem-85 25 octobre 2014 à 10:10:10

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    https://kaadem.wordpress.com
                                                      25 octobre 2014 à 10:12:45

                                                      @Kaddem85, si tu crées un fichier www.html dans le répertoire /var/www/ et un html.html dans /var/www/html, est-ce que tu peux accéder à http://localhost/www.html ou http://localhost/html.html ?
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        25 octobre 2014 à 10:26:48

                                                        RenaudMG a écrit:

                                                        @Kaddem85, si tu crées un fichier www.html dans le répertoire /var/www/ et un html.html dans /var/www/html, est-ce que tu peux accéder à http://localhost/www.html ou http://localhost/html.html ?


                                                        J'ai essayé mais ça me retourne une erreur 404.
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                        https://kaadem.wordpress.com
                                                          25 octobre 2014 à 10:33:09

                                                          @Kaddem85 Alors c'est que tu n'es pas dans le bon dossier, est-ce que tu as un /home/Kaddem85/www ou quelque chose dans ce genre ? Selon les distribution ce genre de chose se rencontre (genre release OVH)
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            25 octobre 2014 à 15:18:29

                                                            @Kaddem85 : peux-tu poster le contenu de ton virtual host apache s'il te plait ? (si tu n'en a pas créé toi-même, ce doit être par défaut le contenu du fichier /etc/apache2/sites-enabled/default si tu es sur debian / ubuntu)

                                                            @TripleZero : effectivement il manque l'AUTO_INCREMENT dans le bout de code du cours, je corrige de suite. Attention toutefois, il faut le mettre avant l'instruction PRIMARY KEY : "id INT AUTO_INCREMENT PRIMARY KEY"

                                                            @Ginzhu : une fois le plugin activé, si la classe du widget est correctement configurée alors il doit apparaitre dans le menu apparence widget afin d'être ajouté sur le site. S'il n'apparait pas ici, c'est qu'il manque quelque chose, il est possible que  l'initialisation du widget n'ait pas été faite. Je vois que tu avais oublié d'instancier la classe de ton plugin, cela a-t-il corrigé le problème ?

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              25 octobre 2014 à 16:06:56

                                                              Merci de ta réponse Ghinzu !

                                                              Effectivement il manquait les ()  de

                                                              new Zero_plugin();


                                                              Ghinzu a écrit:

                                                                  Comme cité dans un message plus haut, le add_action doit se mettre dans le constructeur de la class zero_newsletter

                                                                  public function __construct() {
                                                                  ...
                                                                  add_action('wp_loaded', array('Zero_newsletter', 'save_email'));
                                                                  }

                                                              En fait tu peux soit mettre le add_action dans le __construct() de la classe Zero_newsletter et tu appelles la methode save_mail de sa propre classe, donc  avec $this :

                                                               add_action('wp_loaded', array($this, 'save_email'));

                                                              Soit mettre le add_action dans le __construct() de la classe Zero_plugin et tu appelles à ce moment là la methode save_mail de la classe Zero_newsletter :

                                                               add_action('wp_loaded', array('Zero_newsletter', 'save_email'));

                                                                  cette 2ème option étant plus cohérente / aux éléments précédents du cours

                                                              -
                                                              Edité par Triple Zero 25 octobre 2014 à 16:12:06

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              MOOC Propulsez votre site avec WordPress

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown