Je veux créer un formulaire que je peux utiliser un shortcode pour insérer dans mon site.
Ce serait vraiment bien si je pouvais créer la partie HTML dans un fichier séparé puis l'insérer avec un shortcode PHP (pour séparer la logique de la page de la mécanique de la transformer en shortcode).
Comment pourrais-je faire ça?
-- Mettre à jour --
Voici ce que j'ai fait: j'ai deux fichiers. L'un appelé «profiletemplate.php» et l'autre appelé «scodes». Ils font tous deux partie d'un plugin que je crée pour mon site avec un init.php qui les initialise. Voici leur contenu:
init.php
<?php
require_once(dirname(__FILE__).'/pages/scodes.php');
?>
scodes.php
function jf_testcode() {
include dirname(__FILE__) . 'profiletemplate.php';
}
add_shortcode('testfield', 'jf_testcode');
profiletemplate.php
<?php // Template for my form shortcode ?>
<form>
Testing
</form>
J'utilise ensuite le shortcode [testfield] sur une page de mon site.
Update 2
Cette méthode fonctionne donc, mais elle n'insère pas le code HTML où le shortcode est appelé. Au lieu de cela, il s'agit simplement d'insérer le contenu en haut de la page (comme si je disais 'echo' Testing '' au lieu de 'return' Testing '' dans une fonction.
functions.php
qui nécessite / inclut ce certain fichier, et enadd_shortcode()
configurant le shortcode souhaité pour appeler votre fonction.Réponses:
Quelque chose que j'ai oublié dans mon commentaire précédent était que les shortcodes renvoient du contenu, à la fois la suggestion
include
et mon alternativeget_template_part
produiront directement le contenu (c'est ce que vous voyez avec le contenu apparaissant en haut de votre page au lieu de l'endroit où le shortcode est appelé). Pour contrer cela, nous devons utiliser la mise en mémoire tampon de sortie .Définissez le shortcode dans votre fichier functions.php (ou dans le fichier de fonctions propre à votre site ).
Ensuite, dans votre dossier de thème, vous avez besoin d'un fichier appelé
my_form_template.php
qui sera chargé partout où vous placerez le shortcode.la source
Ajoutez ce qui suit à votre functions.php :
Fichier my_form_template.php :
la source
get_template_part()
intérieur de votre fonction de shortcode.