Estou usando um código curto para obter loops diferentes através do loops-name.php. Por alguma razão, está sempre no topo da página. Eu pesquisei no Google e usar echo em vez de retornar causa esse problema, mas com meu código não estou usando echo. Aqui está o código curto:
// 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'));
}
Alguma idéia de por que isso está acontecendo?
get_template_part('loop',$module)
vez disso, é mais bonito, mais rápido de digitar, suporta temas de pai / filho e é o método recomendado para incluir modelos no wordpress (sim, o find_template pode fazer algumas dessas coisas, mas parece menos legível!)Respostas:
Você pode armazenar em buffer a saída assim:
EDITAR. Eu tentei isso, funcionou bem.
fonte
Seu arquivo incluído é essencialmente eco de HTML. Por exemplo
É o mesmo que
Ambos são impressos imediatamente, em vez de devolvidos. Desde a sua impressão, aparece antes do conteúdo da página. Você precisa retornar algo para que ele seja incluído no conteúdo.
Como o @RutwickGangurde apontou - é incomum incluir um arquivo de modelo em um código de acesso.
fonte
dynamic_sidebar()
dentro do Loop e permitir que os usuários adicionem Widgets.