Stack Overflow em Português Asked by Philip Vanstocher on November 19, 2021
Por padrão sei que posso listar alguns artigos wordpress em uma página externa em php usando um “require(‘../../wp-blog-header.php’);”.
Porém ao clicar em um desses artigos ele vai para página padrão que abre o Post completo.
Minha dúvida é a seguinte:
Como faço para que o POSt completo seja aberto em um arquivo (Ex. Postcompleto.php”) separado, ao invés de abrir na single.php ?
Você pode usar o método de incluir require('../../wp-blog-header.php');
para carregar qualquer conteúdo. O que muda é a forma como você chama o conteúdo dentro do seu arquivo externo.
Por padrão quando você incluir wp-blog-header.php
ele vai carregar todo o back-end do WordPress com os parâmetros básicos, ou seja, ele carrega a página inicial. Daí pra frente ele vai obedecer o que estiver no seu arquivo, então você pode criar uma segunda query pra pegar o conteúdo que te interessa:
// Pra buscar um arquivo de posts do tipo "artigos"
$query = new WP_Query( array( 'post_type' => 'artigos' /* etc */ ) );
if ( $query->has_posts() ) :
while ( $query->has_posts() ) :
$query->the_post();
// exibe as informações aqui
endwhile;
endif;
-
// Pra buscar um post pelo ID
$single = get_post( $id );
echo $single->post_title; // imprime o título
Agora, pra lincar de dentro do seu arquivo de posts para o php externo você provavelmente vai ter que filtrar as URLs que estão sendo exibidas. Algo assim é um caminho, mas existem outros dependendo do seu caso específico:
// em functions.php
add_filter( 'post_link', 'altera_link' ); // posts
add_filter( 'page_link', 'altera_link' ); // pages
add_filter( 'post_type_link', 'altera_link' ); // custom post types
function altera_link( $link ) {
// altera os links de 'example.com' para 'domain.com';
return str_replace( 'example.com', 'domain.com', $link );
}
mas: carregar wp-blog-header.php
em geral é má ideia.
Eu pensaria bem na arquitetura desse sistema porque existem jeitos melhores de não usar o sistema de templates do WP, se esse é o caso. Existem wrappers pra frameworks PHP (tipo Corcel), ou mesmo pra front-ends em javascript (tipo NodeifyWP) e existe o bom e velho Ajax pra puxar só o conteúdo que você quer.
Answered by Ricardo Moraleida on November 19, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP