web-dev-qa-db-fra.com

ajouter une action wp_head ne fonctionne pas

J'essaie d'ajouter du code à la tête (à savoir un bloc de script de suivi) via un plugin que je crée.

Le plugin a une interface où l’utilisateur entre quelques détails qui sont ensuite ajoutés à la table d’options. Tout cela fonctionne parfaitement bien jusqu'à présent. Mais alors je veux écrire une déclaration conditionnelle s'il y a une ouverture puis ajouter à la tête. Fondamentalement, j'ai tout cela dans le fichier de plugin principal et cela ressemble à ceci;

if(get_option( 'MyOptionName' )){
    function testingone(){ ?>
        <script>var Script = GoesHere; </script>
    <?php ;}
    add_action('wp_head','testingone');
}

J'ai essayé de placer cela à l'intérieur du bloc qui extrait les données, puis ajoute des options, mais cela n'a pas fonctionné, puis j'ai décidé de le faire de cette façon, où il semble y avoir une option dans le tableau aussi n'injecte rien dans la tête. Certains endroits où j'ai vu des personnes placer add_action au-dessus de la fonction, mais dans le codex, il en présente un exemple ci-dessous. mais de toute façon j'ai essayé et échoué.

Quelqu'un peut-il voir où cela ne va pas?

À votre santé

1
robolist

Tirez la add_action() à l'extérieur de la fonction et mettez la condition à l'intérieur du rappel. De même, si vous imprimez un script directement, utilisez wp_print_scripts au lieu de wp_head. Vous avez également une erreur de syntaxe.

function testingone(){ 
    if( get_option( 'MyOptionName' ) ) {
        ?>
        <script>var Script = GoesHere; </script>
        <?php
    }
}
add_action( 'wp_print_scripts','testingone' );
7
Chip Bennett

Essayez de transformer votre code:

function testingone() {
    if( FALSE !== get_option( 'MyOptionName' ) ) {
        echo( 'ok, this is in the head!' );
    } 
}
add_action( 'wp_head', 'testingone' );

De même, vérifiez dans les fichiers de votre thème (probablement header.php) que la fonction wp_head() est appelée et assurez-vous que l'option MyOptionName est définie pour le site.

Édité pour ajouter - Vous devez également utiliser wp_enqueue_script() pour ajouter du Javascript à votre site, plutôt que de simplement les transférer dans le <head>.

Références

3
Pat J

voir ci-dessous l'instruction code.Add IF à l'intérieur de la fonction.

function testingone(){ 
    if(get_option( 'MyOptionName' )){
    ?>
    <script>var Script = GoesHere; </script>
    <?php } 
      }
add_action('wp_head','testingone');
3
dipali
function plugin_script() {
       wp_enqueue_script( 'Jquery-min', WP_PLUGIN_URL. '/Test Plugin/jquery-min.js', false, '1.11.0' );<br/>
       wp_enqueue_style('pluginstyle', WP_PLUGIN_URL. '/Test Plugin/pluginstyle.css',false,'1.0',"all");<br/>
}
add_action( 'wp_head', 'plugin_script' );

Le hook d'action "wp_head" est déclenché dans la section "head".

wp_enqueue_script () est utilisé pour exécuter des scripts et wp_enqueue_style est pour une feuille de style du plugin. "WP_PLUGIN_URL." obtiendra des données du dossier du plugin de thèmes. "Plugin de test" correspond au nom de votre plugin, feuille de style du plugin "pluginstyle.css". Script du plugin "jquery-min.js".

0
Pullata Praveen