J'ai quelques formulaires longs que je veux produire en codes courts. API Shortcode indique que
Si le shortcode génère beaucoup de code HTML, alors ob_start peut être utilisé pour capturer la sortie et le convertir en chaîne.
Cela semble être exactement mon cas. De plus, je souhaite utiliser les fonctions WordPress dans mon code HTML, comme ceci:
function my_shortcode_register_form( $atts, $content = null ) {
ob_start();
?>
<div id="reg_form">
<h2><?php echo __('Login info', 'my-plugin-domain'); ?></h2>
<!-- and so on -->
</div>
<p><a href="<?php echo site_url( 'dashboard' ); ?>"><?php echo __('Go to Dashboard', 'my-plugin-domain'); ?></a>!</p>
<?php
$output_string = ob_get_contents();
ob_end_clean();
return $output_string;
}
add_shortcode('register_form', array( $this, 'my_shortcode_register_form' ));
Cela fonctionne bien, mais je m'intéresse aux meilleures pratiques, aux bugs potentiels et aux performances. Des inconvénients à cette approche? Quelque chose qui pourrait aller terriblement mal?
J'ai vu au moins une question sur cet avertissement, n'utilisez pas seulement la mise en mémoire tampon de la sortie, sauf en cas d'absolue nécessité. Devrais-je simplement importer ces formulaires dans des modèles?
Devrais-je simplement importer ces formulaires dans des modèles?
Cela dépend du formulaire et vous n'avez pas imprimé beaucoup de détails sur ce que font vos formulaires. Les codes abrégés sont gentils mais ne sont pas le bon outil pour chaque travail.
Je voudrais:
$_POST
ou $_GET
dans le shortcode ou à vérifier la présence de ces données dans votre en-tête, ou autre, et cela devient confus. De plus, le shortcode est une surcharge qui peut être évitée.Je suis sûr qu'il y a d'autres préoccupations, mais ce sont celles qui me semblent les plus importantes.