Używam krótkiego kodu, aby pobierać różne pętle za pośrednictwem loops-name.php. Z jakiegoś powodu zawsze znajduje się na górze strony. Poszukałem go i używanie echa zamiast powrotu powoduje ten problem, ale w moim kodzie nie używam echa. Oto krótki kod:
// 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'));
}
Jakiś pomysł dlaczego tak się dzieje?
get_template_part('loop',$module)
zamiast tego, jest ładniejszy, szybszy w pisaniu, obsługuje motywy nadrzędne / podrzędne i jest to zalecana metoda dołączania szablonów do wordpress (tak locate_template może robić niektóre z tych rzeczy, ale spójrz, o ile mniej jest czytelny!)Odpowiedzi:
Możesz buforować dane wyjściowe w następujący sposób:
EDYTOWAĆ. Próbowałem tego, działało dobrze.
źródło
Twój dołączony plik zasadniczo przypomina echo HTML. Na przykład
Jest taki sam jak
Oba są drukowane natychmiast, a nie zwracane. Po wydrukowaniu pojawia się przed treścią strony. Musisz zwrócić coś, aby zostało uwzględnione w treści.
Jak zauważył @RutwickGangurde - dołączanie pliku szablonu do krótkiego kodu jest niezwykłe.
źródło
dynamic_sidebar()
wewnątrz Pętli i pozwól użytkownikom dodawać widżety.