Pre_get_posts
-
Gostaria de saber como utilizo para fazer no meu index aparecer apenas o ultimo post de determinada categoria.
Não estou conseguindo com os tutoriais que eu acho.
Obrigado.
-
Tem um exemplo pronto na documentação do
pre_get_posts
: http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts#Show_Only_One_Category_on_Home_Pageindex.php
<?php add_action( ‘pre_get_posts’, ‘my_home_category’ ); ?>functions.php
function my_home_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( ‘teste’, ‘1’ );
}
}
add_action( ‘pre_get_posts’, ‘my_home_category’ );seria apenas isso? pois está dando erro quando coloco esse código.
Não, não é isso,
Vai usr apenas opre_getp_posts
dentro do seufunctions.php
.
Além que não existe esseteste
, precisa sercat
exatamente igual na documentação!fiz a configuração mas erro ainda.
index.php
<?php add_action( ‘pre_get_posts’, ‘my_home_category’ ); ?>functions.php
function my_home_category( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$query->set( ‘cat’, ‘1’ );
}
}
add_action( ‘pre_get_posts’, ‘my_home_category’ );error:
! ) Parse error: syntax error, unexpected ‘endwhile’ (T_ENDWHILE) in C:\wamp\www\teste\wp-content\themes\Limpo\index.php on line 17
Call Stack
# Time Memory Function Location
1 0.0010 241608 {main}( ) ..\index.php:0
2 0.0010 244680 require( ‘C:\wamp\www\teste\wp-blog-header.php’ ) ..\index.php:17
3 0.4050 18312112 require_once( ‘C:\wamp\www\teste\wp-includes\template-loader.php’ ) ..\wp-blog-header.php:16Amigo, isso não existe:
<?php add_action( 'pre_get_posts', 'my_home_category' ); ?>
Não tem nenhuma necessidade de adicionar isso no seu
index.php
.
Onde na documentação que eu te passei o link pede para adicionar isso dentro de alguma página de template?Você só vai usar o código do
functions.php
, apenas ele.pelo que tinha visto tinha que usar, mas mesmo não usando da o erro.
fiz umas configurações e funcionou meia boca, já já vejo e te digo ;D vlw
É apenas para usar o seu código dentro do
functions.php
, bem simples.
AI basta trocar o1
pelo ID da sua categoria e esta tudo pronto.e como botaria mais de 1?
tipo.
$query->set( ‘cat’, ‘1’ ‘2’ );
Assim:
$query->set( 'cat', '1,2' );
quando eu coloco assim ele mostra apenas o ultimo.
Então veja se esta certo os IDs das suas categorias.
as IDs estão certas porque se troco mostra, entretanto se botar 1,2 aparece apenas o 2 e se tiver 1,2,3 aparece apenas o 3.
Tenta assim:
$query->set( 'cat', array( '1', '2' ) );
ainda não, será que não pode ser meu index?
segue ai:
<div id=”artigos”>
<div class=”artigo”>
<h2>“><?php the_title(); ?></h2>
<p>Postado por <?php the_author() ?> em <?php the_time(‘d/M/Y’) ?> – <?php comments_popup_link(‘Sem Comentários’, ‘1 Comentário’, ‘% Comentários’, ‘comments-link’, ”); ?> <?php edit_post_link(‘(Editar)’); ?></p>
<p><?php the_content(); ?></p>
</div><div class=”navegacao”>
<div class=”recentes”><?php next_posts_link(‘« Artigos Anteriores’) ?></div>
<div class=”anteriores”><?php previous_posts_link(‘Artigos Recentes »’) ?></div>
</div><div class=”artigo”>
<h2>Nada Encontrado</h2>
<p>Erro 404</p>
<p>Lamentamos mas não foram encontrados artigos.</p>
</div></div>
- O tópico ‘Pre_get_posts’ está fechado para novas respostas.