8
votes

WordPress: Accéder à la fonction d'un plugin à partir d'un thème

J'essaie d'ajouter des fonctionnalités d'un plugin que j'ai fabriqué dans un thème WordPress, mais j'ai peu de joie. La documentation ne m'aidait pas vraiment à résoudre le problème, alors peut-être que quelqu'un ici peut aider.

J'ai un plugin dans WordPress qui est activé et fonctionnant bien. La classe de ce plugin a une fonction appelée génératehtml que j'aimerais accéder à partir d'un thème WordPress. Mais tout ce que j'essaye, je ne peux pas sembler accéder à mon code de mon plugin. P>

peut-il me donner un résumé de ce que je dois faire pour obtenir un thème d'accéder au code d'un plugin et / ou de pointer là-bas. Aller mal dans mon code: p>

Plugin: P>

<?php if (isset($imageRotator)) {
        $imageRotator->generateHtml();
    } else if (isset($ImageRotator)) {
        print_r($ImageRotator);
    } else {
        echo '<p>Nope!</p>';
    }

    if (function_exists("imagerotator_show")) {
      echo 'Function found';
    } else {
      echo 'Function NOT found';
    }
?>


1 commentaires

À titre de note latérale, cela devrait être utile pour tous les concepteurs de thèmes WordPress: Devideas.Blogétery. com / test-wordpress-themes-facilement


3 Réponses :


6
votes

Pour commencer, "ImageroTor_Show" n'est pas une fonction; C'est le nom d'un type d'action. Lorsque vous utilisez la fonction add_action (), WordPress ajoute simplement votre méthode à la liste des fonctions / méthodes à appeler lorsqu'une action particulière est déclenchée. Ainsi, votre deuxième test répondra toujours avec «Fonction non trouvée».

La cause la plus probable du premier problème est de ne pas déclarer la méthode que vous souhaitez appeler comme méthode publique. Vous rendez également le code plus difficile que nécessaire. P>

La meilleure pratique que j'ai vue pour déclarer des méthodes et enregistrer des crochets d'une classe ressemble à ceci: P>

$MyFoo->my_special_method();


2 commentaires

Merci pour l'entrée. Je vais lui donner un coup de feu


Je suis curieux pourquoi vous avez passé $ CU par référence à la ligne 4. Je suis nouveau à l'aide du formulaire OO pour les plugins WordPress.



1
votes

@andrew depuis que je ne peux pas commenter, je pensais que je répondrais à votre question auxiliaire. Voir:

http://net.tutsplus.com / Tutoriels / WordPress / Créer-WordPress-Plugins-with-oop-Techniques /

où il est expliqué que lors de la définition d'une fonction de rappel d'un objet, vous devez utiliser la fonction de tableau. Il s'agit essentiellement de recevoir la fonction 'my_hook_implementat' à partir de l'objet $ CI et utilisez-le comme paramètre de rappel sur le crochet d'ADD Action. C'est parce que vous avez défini la fonction dans le cadre de l'objet et vous devez définir la portée pour que PHP puisse savoir quelle fonction vous parlez. La portée étant l'objet mentionné par la variable $ ceci.


0 commentaires

1
votes

Vous devez juste avoir besoin d'utiliser do_action () fonction, à l'intérieur de votre thème.

Si vous souhaitez que la fonction generatehtml apparaisse à l'intérieur de votre tête.php, il vous suffit d'ouvrir le fichier header.php et coller où vous voulez, puis votre fonction sera appelée là-bas.


0 commentaires