Le shortcode du plugin Wordpress ne fonctionne pas


9

J'ai un shortcode défini dans un plugin comme suit:

// [tag1] -> Some Longer Text
function shortcode_example1() {
    return 'Some Longer Text';
}
add_shortcode('tag1', 'shortcode_example1');

Maintenant, dans une page wordpress, j'essaie d'accéder au plugin comme suit:

[tag1]

Cependant, le shortcode n'est pas exécuté et la sortie est simplement "[tag1]". Pouvez-vous m'aider?

Merci de votre aide.


Votre code fonctionne pour moi sur WP 3.9.2, soit dans un plugin soit dans functions.php. Les autres shortcodes fonctionnent-ils bien?
Gabriel

1
Je confirme également que ce shortcode fonctionne bien. Quelque chose a-t-il retiré le do_shortcodefiltre du the_contentcrochet? Essayez de passer à un thème par défaut (votre thème utilise- the_content()t-il?) Et de désactiver tous les plugins. Ensuite, permettez-leur 1 par 1 de trouver le conflit potentiel.
helgatheviking

Réponses:


31

Il y a quelques choses à vérifier ici

  • Un: votre plugin est-il activé?

  • Deux: est votre shortcode dans votre fichier plugin principal. Si ce code est dans un autre fichier à l'intérieur de votre plugin, vous êtes-vous assuré d'inclure ce fichier supplémentaire dans votre fichier de plugin principal

  • Trois: N'avez-vous aucun type d'erreur dans votre fichier de plugin qui désactive votre plugin après l'activation. Avez-vous défini le débogage sur true. Un des membres du site a un excellent plugin de débogage disponible en téléchargement sur wordpress.org appelé Debug Objects

  • Quatre: essayez de déplacer votre shortcode vers le fichier functions.php de votre thème pour vous assurer que votre shortcode fonctionne réellement. Si cela ne fonctionne pas dans votre thème, le problème pourrait en fait être dans votre thème lui-même

  • Cinq: comme suggéré par @helgatheviking, ne filtrez-vous pas le the_content()de quelque manière qui pourrait provoquer ce comportement

  • Six: Si tout ce qui précède échoue, désactivez tous les plugins, passez à un thème groupé et revérifiez. Si le problème persiste, mettez à niveau / réinstallez Wordpress, car il peut s'agir d'un fichier principal corrompu, puis


J'ai fait la liste de contrôle: 1 = vérifier !, 2 = oui !, 3 = non, 4 = ok, 5 = non, 6-> travaillé! Après avoir changé mon wp local (pour les tests) de «Sydney Theme» à «Twenty Fourteen», le SC s'affiche. Il semble qu'il existe des thèmes qui empêchent les SC de s'afficher dans les messages.
Martin Pfeffer

Merci Pieter pour cette liste de contrôle. Il s'avère que je n'avais pas inclus mon fichier correctement ... woops. Fonctionne bien maintenant :)
Chess Byte

J'ai fait tout ce qui suit et ça ne marche toujours pas. J'ai une nouvelle installation de WordPress (5.0.2) avec du code ajouté au fichier functions.php. Mais quand je mets [shortcodename] dans une page, il est traité comme du texte. Qu'est-ce qui ne va pas? J'utilise le thème par défaut: Twenty Sixteen.
hal

Ceci est une liste de contrôle super utile. La seule chose que j'ajouterais serait un Seven: assurez-vous que votre éditeur de page ne charge pas votre shortcode comme le mien: ] Ce «utile» WordBreak m'a bousillé pendant un moment. Merci éditeur de page ...
Brian Stinar

-1

Ajoute ça

    add_filter('the_content', 'do_shortcode');

1
Pourquoi? Qu'est-ce que cela fait? Où ajouteraient-ils cela? Veuillez modifier votre réponse en utilisant le lien d' édition ci-dessus et ajouter plus d'informations sur la façon dont cela aide à résoudre le problème.
Howdy_McGee

-4

Merci pour vos réponses. Après une enquête plus approfondie, j'ai découvert que le fichier du plugin où mon shortcode était défini apparaissait comme "inactif". Une fois que j'ai déplacé mes définitions de shortcode dans un fichier actif, tout a commencé à fonctionner. J'espère que cela sera utile à quiconque se heurtera à cela à l'avenir.

Merci encore!


Veuillez accepter la bonne réponse au lieu de la vôtre.
Chess Byte
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.