J'utilise un shortcode pour extraire différentes boucles via le loops-name.php. Pour une raison quelconque, il est toujours en haut de la page. Je l'ai googlé et utiliser echo au lieu de return provoque ce problème mais avec mon code, je n'utilise pas echo. Voici le shortcode:
// setup the shortcode for use
function friendly_loop_shortcode( $atts, $content = null ) {
extract( shortcode_atts( array(
'category' => '',
'module' => ''
), $atts ) );
include(locate_template('loop-'.$module.'.php'));
}
Une idée pourquoi cela se produit?
get_template_part('loop',$module)
place, il est plus joli, plus rapide à taper, prend en charge les thèmes parent / enfant, et c'est la méthode recommandée pour inclure des modèles dans wordpress (oui Locate_template peut faire certaines de ces choses mais regardez combien il est moins lisible!)Réponses:
Vous pouvez tamponner la sortie comme ceci:
ÉDITER. J'ai essayé, j'ai bien fonctionné.
la source
Votre fichier inclus fait essentiellement écho au HTML. Par exemple
Est le même que
Les deux sont imprimés immédiatement plutôt que retournés. Depuis son impression, il apparaît avant le contenu de la page. Vous devez retourner quelque chose pour qu'il soit inclus dans le contenu.
Comme l'a souligné @RutwickGangurde - il est inhabituel d'inclure un fichier modèle dans un shortcode.
la source
dynamic_sidebar()
dans la boucle et laissez les utilisateurs ajouter des widgets.