Estoy usando un código corto para extraer diferentes bucles a través de loops-name.php. Por alguna razón, siempre está en la parte superior de la página. Lo busqué en Google y usar echo en lugar de return causa ese problema, pero con mi código no estoy usando echo. Aquí está el código corto:
// 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'));
}
¿Alguna idea de por qué está sucediendo esto?
get_template_part('loop',$module)
en su lugar, es más bonita, más rápido para escribir, temas soportes padre / hijo, y es el método recomendado de incluir plantillas en wordpress (sí locate_template pueden hacer algunas de esas cosas pero mira cuánto menos legible que es!)Respuestas:
Puede almacenar el resultado de la siguiente manera:
EDITAR. Intenté esto, funcionó bien.
fuente
Su archivo incluido es esencialmente un eco de HTML. Por ejemplo
Es lo mismo que
Ambos se imprimen inmediatamente en lugar de ser devueltos. Desde su impresión aparece antes del contenido de la página. Debe devolver algo para que se incluya en el contenido.
Como señaló @RutwickGangurde, es inusual incluir un archivo de plantilla en un código corto.
fuente
dynamic_sidebar()
dentro del Loop y permita que los usuarios agreguen Widgets.