Je développe un simple plugin pour permettre à un utilisateur d'insérer un message depuis le frontend.
J'ai un shortcode [add-post] qu'un utilisateur peut mettre sur n'importe quelle page, par exemple. Ma page murale
Maintenant, sur ma page de mur, un formulaire simple apparaît, qui comporte un champ de titre, un champ de contenu et un champ de sélection de catégorie afin que l'utilisateur puisse choisir la catégorie dans laquelle placer son message.
Je ne suis pas sûr de ce que l'action devrait être?
add_shortcode('add-post','my_fucntion');
function my_function(){
<form>...My form for inserting a new post goes here...</form>
}
add_action('????', 'my_fucntion');
Quel devrait être le crochet? J'ai essayé 'init', 'widgets_init' mais en vain. Si je n'ajoute aucune action ou même si j'ajoute 'init' ou 'widgets_init', il affiche mon formulaire 3 fois; deux fois en haut et une fois à la place du shortcode (c'est-à-dire qu'il remplace mon shortcode)
Vous n'avez pas besoin de vous accrocher à une action pour un shortcode - l'ajout de ce shortcode à l'aide de add_shortcode()
le fera fonctionner lorsque vous appelez the_content()
. Cela dit, votre fonction pour votre shortcode doit renvoyer votre sortie, pas seulement en faire écho. Sinon, vous constaterez que votre formulaire apparaîtra beaucoup plus tôt que prévu.
Vous n'avez pas besoin de vous lier à une action pour un shortcode - l'ajout de ce shortcode avec add_shortcode () le fera fonctionner lorsque vous appelez the_content (). Cela dit, votre fonction pour votre shortcode doit renvoyer votre sortie, pas seulement pour la faire écho. Sinon, vous constaterez que votre formulaire apparaîtra beaucoup plus tôt que prévu.