marlon@universowp.com.br
Iniciar e carregar o WP
Analisa a URL e define quais posts deverão ser buscados no banco de dados
Buscar no banco de dados os posts requisitados para serem exibidos
https://universowp.com.br/categoria/noticias
Escolher e carregar o template a ser usado para exibir os posts através do Loop
https://universowp.com.br/categoria/noticias
A URL requisitada será analisada para extrair as variáveis (query_vars) que serão usadas como parâmetros para fazer a busca dos posts
https://universowp.com.br/categoria/noticias
https://universowp.com.br/index.php?category_name=noticias
query_vars -> Array ( category_name => 'noticias', )
categoria/(.+?)/?$
index.php?category_name=$matches[1]
https://universowp.com.br/categoria/noticias
index.php?category_name=noticias
Query Vars são variáveis extraídas da URL ou usadas numa query customizada que determinam (ou afetam) os resultados de uma consulta ao banco de dados.
query_vars -> Array ( category_name => 'noticias', )
* Não é a função query_posts()
WP_Query Object ( [query] => Array ( [category_name] => noticias ) [query_vars] => Array ( [category_name] => noticias [cat] => 33 [posts_per_page] => 10 [order] => DESC ) [queried_object] => WP_Term Object [queried_object_id] => 33 [posts] => Array [found_posts] => 3 [is_archive] => 1 [is_category] => 1 )
pre_get_posts
New WP_Query
get_posts()
add_action( 'pre_get_posts', 'uwp_altera_posts_per_page' );
function uwp_altera_posts_per_page( $query ) {
if ( is_admin() || ! $query->is_main_query() ) {
return;
}
if ( $query->is_category( 'noticias' ) ) {
$query->set( 'posts_per_page', '20' );
}
}
query_posts( 'posts_per_page=20' );
function query_posts($query) {
$GLOBALS['wp_query'] = new WP_Query();
return $GLOBALS['wp_query']->query($query);
}
is_home()
front-page.php > home.php > page.php > index.php
is_page()
{custom-template}.php > page-{slug}.php > page-{id}.php > page.php > index.php
is_single()
single-{post-type}.php > single.php > index.php
is_category()
category-{slug}.php > category-{id}.php > category.php > archive.php > index.php
Como o WP define qual arquivo de template irá usar?
$wp_query (
is_home => false,
is_page => false,
is_single => false,
is_category => true,
... )
Através das Query Vars
if ( have_posts() ) :
while ( have_posts() ) : the_post();
the_title();
the_content();
endwhile;
endif;
Loop é uma estrutura de repetição responsável por exibir o conjunto de posts wp_query->posts resultante da busca no banco de dados.
post, post_count, current_post, in_the_loop
Início do loop
Tudo entre este ponto e o fim do loop será repetido até encerrar a lista de posts consultados no BD.
the_title()
Imprime o título do post que está sendo iterado.
the_excerpt()
Imprime o resumo do post que está sendo iterado.
the_content()
Imprime o conteúdo do post que está sendo iterado.
the_category()
Imprime a categoria do post que está sendo iterado.
the_author()
Imprime o autor do post que está sendo iterado.
Fim do loop
Retorna para o início do loop se houver mais posts ou encerra e continua execução do template.
Outras templates tags
Quaisquer outras templates tags deverão entrar no loop.
Continua execução do template
Sair