Ich benutze einen Shortcode, um verschiedene Loops über die loops-name.php einzulesen. Aus irgendeinem Grund steht es immer oben auf der Seite. Ich habe es gegoogelt und die Verwendung von Echo anstelle von Return verursacht dieses Problem, aber mit meinem Code verwende ich kein Echo. Hier ist der 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'));
}
Irgendeine Idee, warum das passiert?
get_template_part('loop',$module)
Stattdessen ist es schöner, schneller geben, unterstützt Eltern / Kind - Themen, und es ist die empfohlene Methode von Vorlagen in Wordpress einschließlich (ja locate_template können einige dieser Dinge tun , sondern sehen , wie viel weniger lesbar ist!)Antworten:
Sie können die Ausgabe wie folgt puffern:
BEARBEITEN. Ich habe es versucht, habe gut funktioniert.
quelle
Ihre enthaltene Datei enthält im Wesentlichen HTML-Echo. Zum Beispiel
Ist das gleiche wie
Beide werden sofort gedruckt und nicht zurückgesandt. Seit dem Ausdruck erscheint es vor dem Seiteninhalt. Sie müssen zurückkehren , etwas für sich im Inhalt enthalten sein.
Wie @RutwickGangurde betonte, ist es ungewöhnlich, eine Vorlagendatei in einen Shortcode aufzunehmen.
quelle
dynamic_sidebar()
Element in der Schleife und lassen Sie die Benutzer Widgets hinzufügen.