Queryposts na página de categorias ou tags no WordPress


Postado em 18 de setembro de 2014 por | Categorias: Categorias, Loop no Wordpress, Queryposts | Tags: | Sem comentários » | Comentar


Exemplo de como criar uma chamada de categorias manualmente via queryposts no arquivo category.php:

// Pega categoria corrente através da URL
$endereco = $_SERVER ['REQUEST_URI'];
 // Retira barras e o nome category do endereço
 $categoria_selecionada = substr($endereco, 15, -1);

query_posts( array( 'post_type' => 'post', 'orderby' => 'date', 'order' => 'DESC',
 'category_name' => $categoria_selecionada, 'showposts' => -1 ) );

if (have_posts()) :  while (have_posts()) : the_post();

the_title();
 the_excerpt();

endwhile; endif;

Exemplo de como criar uma chamada de Tags manualmente via queryposts no arquivo tag.php:

// Pega TAG corrente através da URL
$endereco = $_SERVER ['REQUEST_URI'];
 // Retira barras e o nome tag do endereço
 $tag_selecionada = substr($endereco, 10, -1);

query_posts( array( 'post_type' => 'post', 'orderby' => 'date', 'order' => 'DESC',
 'tag' => $tag_selecionada, 'showposts' => -1 ) );

if (have_posts()) :  while (have_posts()) : the_post();

the_title();
 the_excerpt();

endwhile; endif;


Paginação no WordPress


Postado em 12 de maio de 2011 por | Categorias: Loop no Wordpress, Paginação | Tags: | Sem comentários » | Comentar


Para colocar páginação no WordPress use a query abaixo, onde o parametro posts_per_page é igual a quantidade de posts por página:

<?php query_posts( 'posts_per_page=5&paged=' . get_query_var( 'paged' ) ); ?>

Para colocar os botões de navegação use o código abaixo entre o endwhile e o endif do loop:

 <div class="btn-arr fl"><?php next_posts_link('&laquo; Página Anterior') ?></div>
 <div class="btn-arr fr"><?php previous_posts_link('Próxima página &raquo;') ?></div>

Modelo de CSS:

/*BOTOES NAVEGACAO*/
.btn-arr {
 margin-top: -10px;
 margin-bottom: 10px;
}
.btn-arr a{
 font-weight: 600;
 color:#DE7047;
}
.fl {
 float: left;
}
.fr {
 float: right;
 margin-right: 25px;
}

Exemplo:

<?php query_posts( 'posts_per_page=5&paged=' . get_query_var( 'paged' ) ); ?>
 <?php //query_posts('showposts=3'); ?>
 <?php if(have_posts()) : ?><?php while(have_posts()) : the_post() ?>

 <div id="post-<?php the_ID(); ?>" style="margin-bottom: 20px; border-bottom: 1px solid #4A4A4A; padding-bottom: 20px;">
 <h2><?php the_title(); ?></h2>
 <div>
 <?php the_content(); ?>
 </div>
 <div><?php comments_popup_link('Comente!', '(1) Coment&aacute;rio', '(%) Coment&aacute;rios'); ?></div>
 <div><?php if( function_exists('ADDTOANY_SHARE_SAVE_KIT') ) { ADDTOANY_SHARE_SAVE_KIT(); } ?></div>
 </div>
 <!--/post-->

 <?php endwhile;?>

 <div><?php next_posts_link('&laquo; Página Anterior') ?></div>
 <div><?php previous_posts_link('Próxima página &raquo;') ?></div>
 <br />

 <?php endif; ?>

Outro modelo de Query:

<?php $featured_query = new WP_Query("orderby=date&order=desc&posts_per_page=6&paged=" . get_query_var( 'paged' )); $contador_posts = 1; ?>
<?php while ($featured_query->have_posts()) : $featured_query->the_post(); ?>

Listar posts que tenham um campo personalizado (Custom Field) com um determinado valor


Postado em 4 de maio de 2011 por | Categorias: Campos Personalizados, Custom Post Types, Loop no Wordpress | Tags: , , | 1 Comentário » | Comentar


Basta mudar criar uma query usando o comando meta_key que vai receber o nome do campo personalizado (Custom Field)  e o comando meta_value que vai receber o valor do campo personalizado.  No exemplo abaixo coloque a query antes do loop do WordPress para que seja lsitado somente posts que tiver o valor “sim” determinado para o custom post “destaque”:

<?php query_posts('meta_key=destaque&meta_value=sim'); ?>

Abaixo um exemplo de como fazer um loop do WordPress exibir os posts  de um custom post type de nome imprensa que tenham um campo personalizado (Custom Field) chamdo pagina_inicial com o valor igual a sim:

<ul>
<?php
$sql="SELECT * FROM wp_posts
INNER JOIN wp_postmeta
ON wp_posts.id = wp_postmeta.post_id
WHERE post_type ='imprensa' AND post_status = 'publish'
AND wp_postmeta.meta_key = 'pagina_inicial' AND wp_postmeta.meta_value = 'sim'
ORDER BY wp_posts.post_date DESC";

$results = $wpdb->get_results($sql);

foreach ($results as $r) {
$cont1++;
if($cont1<4){
echo '<li><a href="' . $r->guid . '" title="' . $r->post_title . '"> ' . $r->post_title .'</a></li>';
}
}
?>
</ul>

Modelos personalizados de queryposts no loop WordPress


Postado em 20 de abril de 2011 por | Categorias: Loop no Wordpress | Tags: | 1 Comentário » | Comentar


Categorias

query_posts('cat=4'); //Unicamente os posts da categoria com ID (4)
query_posts('cat=-4'); //Todos exceto os da categoría com ID (4)
query_posts('category_name=Categoria'); //Só os da categoria (Categoria)
query_posts('cat=1,2,4,5,7'); //Unicamente os posts das categorias indicadas.<code>


Tags

query_posts('tag=cooking'); // Todos os posts com a tag (cooking)
query_posts('tag=bread,baking'); //Todos os posts que contenham (bread) ou (baking)
query_posts('tag=bread+baking+recipe'); //Todos los posts que contenham as 3 tags<code>


Autor

query_posts('author_name=Pedro'); //Todos os posts onde o Autor seja (Pedro)
query_posts('author=2'); //Todos os posts do autor (2)
query_posts('author=-4'); //Todos os posts menos do autor (4)

Posts e Página

query_posts('p=1'); //Unicamente o post (1)
query_posts('name=first-post'); //Unicamente o post com nome (first-post)
query_posts('page_id=7'); //A página com ID (7)
query_posts('pagename=about'); //A página com nome (about)
query_posts('showposts=1'); //Modifica o LIMIT do SQL para indicar o número de posts a mostrar.

Tempo

query_posts('hour=01'); //Todos os posts da seguinte hora: (1:00)
query_posts('minute=30'); //Todos os posts do minuto 30(*:30)
query_posts('second=07'); //Posts do segundo 7 (*:*07)
query_posts('day=1'); //Os posts dos días (1)
query_posts('monthnum=2'); //Os posts do mês (2)
query_posts('year=2005'); //Os posts do ano de (2005)

Paginação

query_posts('paged=2'); //Todos os posts que se encontram na página (2) da paginação
query_posts('posts_per_page=10'); //Número de posts por página (10)
query_posts('order=ASC'); //Orden da paginação (ASC)

leia mais em: http://www.pinceladasdaweb.com.br/blog/2008/03/14/query_posts-aprenda-a-personalizar-seu-blog-wordpress/


Criar uma lista de custom taxonomy e seus respectivos posts no WordPress


Postado em 29 de março de 2011 por | Categorias: Custom Post Types, Loop no Wordpress | Tags: | 1 Comentário » | Comentar


No código abaixo temos dois loops, o primeiro cria uma lista com os nomes das categorias personalizadas de nome “area_atuacao”. O segundo loop pega os posts registrados para cada categoria “area_atuacao”.

<?php
 $args=array(
 'orderby' => 'count',
 'taxonomy' => 'area_atuacao',
 'order' => 'DESC'
 );
 $categories=get_categories($args);
 foreach($categories as $category) {
?>
 <h2><?php echo $category->name; ?></h2>
 <?php echo $category->description; ?>
 <br />
 <br />
 <ul>
 <?php query_posts( array( 'post_type' => 'servico',  'orderby' => 'title', 'order' => 'ASC', 'area_atuacao'=>  $category->slug) );?>
 <?php if(have_posts()) : ?><?php while(have_posts()) : the_post() ?>
 <li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></li>
 <?php endwhile; endif; ?>
 </ul>
 <div style="clear:both; height:40px;"></div>
<?php }  ?>

Para registrar o custom post do código acima, coloque este código no arquivo functions.php do seu tema:

/** Criando um Custom Post Type **/
add_action('init', 'servicos_register');

function servicos_register() {

 $labels = array(
 'name' => _(utf8_encode('Serviços')),
 'singular_name' => _(utf8_encode('Serviços')),
 'add_new' => __(utf8_encode('Inserir Serviço')),
 'add_new_item' => __(utf8_encode('Adicionar serviço')),
 'edit_item' => __(utf8_encode('Editar serviço')),
 'new_item' => __(utf8_encode('Inserir serviço')),
 'view_item' => __(utf8_encode('Ver serviço')),
 'search_items' => __(utf8_encode('Buscar serviço')),
 'not_found' =>  __(utf8_encode('Nenhum serviço encontrado')),
 'not_found_in_trash' => __('Nada encontrado na Lixeira'),
 'parent_item_colon' => ''
 );

 $args = array(
 'labels' => $labels,
 'public' => true,
 'publicly_queryable' => true,
 'show_ui' => true,
 'query_var' => true,
 'rewrite' => true,
 'capability_type' => 'post',
 'hierarchical' => false,
 'menu_position' => 5,
 'supports' => array('title','excerpt','editor','thumbnail')
 );

 register_post_type( 'servico' , $args );
}

// --- Registrando nova categoria
$labels = array(
 'name' => __( utf8_encode('Área')),
 'singular_name' => __( utf8_encode('Área') ),
 'search_items' =>  __( 'Buscar' ),
 'popular_items' => __( 'Mais usadas' ),
 'all_items' => __( 'Todas' ),
 'parent_item' => null,
 'parent_item_colon' => null,
 'edit_item' => __( 'Adicionar nova' ),
 'update_item' => __( 'Atualizar' ),
 'add_new_item' => __( 'Adicionar nova' ),
 'new_item_name' => __( 'Nova' )
 );

register_taxonomy('area_atuacao', array('servico'),
 array(
 'hierarchical' => true,
 'labels' => $labels,
 'singular_label' => utf8_encode('Área'),
 'all_items' => utf8_encode('Todas as áreas'),
 'query_var' => true,
 'rewrite' => array( 'slug' => 'area' ))
 );

/** Fim Criando um Custom Post Type **/

 


Montar um select com evento onchange no WordPress


Postado em 17 de janeiro de 2011 por | Categorias: Java Script, Loop no Wordpress | Sem comentários » | Comentar


Para montar uma lista dentro de um select exibindo uma lista de posts do WordPress.  Ao selecionar um item na lista a página será redirecionada automaticamente para a página do post.

Código JavaScript que deve ser colocado na página que controla o evento ONCHANGE do select:

<script language="javascript" type="text/javascript">
 function mudar_post(){

 var post = document.getElementById("D1").value;
 location.href = post;
 }
 </script>

Código do Loop do WordPress que pega os posts da categoria de ID=6

<div style="background: #f4f4f4; padding: 10px; width: 115px; height: 21px; float: left;">
 Escolha uma opção &nbsp;&nbsp;&nbsp;
 </div>

 <div style="width: 425px; float: right; padding: 10px; height: 21px; background: #f8f8f8;">
 <select size="1" name="D1" id="D1" onchange="mudar_post();" style="margin: 0 0 10px 0; width: 425px;">
 <option value="Selecione">Selecione ...</option>

 <? $args = array(
 // Pega o ID da categoria Servicos
 'cat'=>'6',
 'orderby'=>'date'
 );

 $posts_blog = get_posts($args);
 foreach($posts_blog as $blogp){
 ?>
 <option value="<?php echo get_settings('home'); ?>/<?=$blogp->post_name;?>"><? echo $blogp->post_title; ?></option>
 <?php } ?>
 </select>
 </div>


Varias formas de fazer um LOOP no WordPress


Postado em 1 de novembro de 2010 por | Categorias: Loop no Wordpress | Sem comentários » | Comentar


O exemplo abaixo mostra como montar uma lista de posts ordenados randomicamente usando uma variavel chamada $artsee_random que carrega o número de posts que será exibido na lista.

<ul>
<?php $my_query = new WP_Query("orderby=rand&showposts=$artsee_random;");
while ($my_query->have_posts()) : $my_query->the_post();
?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title() ?></a></li>
<?php endwhile; ?>

</ul>

Loop do WordPress com comandos SQL


Postado em 1 de novembro de 2010 por | Categorias: Loop no Wordpress | Tags: | Sem comentários » | Comentar


Exemplo de LOOP no WordPress usando uma consulta SQL.

<div>
<ul>
<?php
 $sql='SELECT post_title, comment_count, guid
 FROM wp_posts
 ORDER BY comment_count DESC
 LIMIT 8;';
 $results = $wpdb->get_results($sql);

 foreach ($results as $r) {
 echo '<li><a href="' . $r->guid . '" title="' . $r->post_title . '"> ' . $r->post_title .
 ' (' . $r->comment_count . ')</a></li>';
 }
?>
</ul>
</div>

Montar duas listas de post em uma página


Postado em 14 de outubro de 2010 por | Categorias: Loop no Wordpress, Posts | Sem comentários » | Comentar


Uma situação que pode acontecer é precisar montar dois loops em um certo arquivo, por exemplo na página principal de um tema.  Sendo que o primeiro loop vai listar o titúlo e o resumo do último post do Blog de uma certa categoria, já o segundo loop vai listar os títulos dos 5 últimos posts de todas as categorias excluindo o post que já foi listado no primeiro loop.

No primeiro loop vamos armazenar o ID do post. No segundo loop vamos verificar se o ID dos posts listados são diferentes do ID do post do primeiro loop.

1º Loop:

<?php query_posts("category_name=Projetos&showposts=1&orderby=date"); ?>

<?php if (have_posts()) : while (have_posts()) : the_post();

// Pega o ID do post
$postid = get_the_ID(); ?>

<h4><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title() ?></a></h4>

 <?php the_excerpt(); ?>

 <a href="<?php the_permalink() ?>">Veja mais</a>

<?php endwhile; endif; ?>

2º Loop – lista últimos 5 posts ordenados por data de duas categorias, 3 e 5. Excluindo o post exibido no primeiro loop:

<ul>
 <?
$args = array(
 'numberposts' => 5,
 // Pega o ID das categorias Novidades e Projetos
 'cat'=>'3,5',
 'orderby'=>'date'
 );

 $posts_blog = get_posts($args);
 foreach($posts_blog as $blogp){

// verifica se o ID do post corrente é diferente do ID do post do primeiro loop
if ($postid != $blogp->ID){
 ?>
 <li id="lista_home"><h5><a href="<?php echo get_settings('home'); ?>/<?=$blogp->post_name;?>"><?=$blogp->post_title;?></a></h5>
 <a href="<?php echo get_settings('home'); ?>/<?=$blogp->post_name;?>" style="font-size:9px;">Veja mais</a>
 </li>
 <?
 }
 }
 ?>
 </ul>

Função que gera uma lista de últimos posts


Postado em 14 de outubro de 2010 por | Categorias: Loop no Wordpress, Posts | Tags: | Sem comentários » | Comentar


Função é útil para exibir o conteúdo, resumo, campos personalizados. Coloque a seguinte função em functions.php do seu tema do WordPress:

function recent_posts($no_posts = 10, $excerpts = true) {

 global $wpdb;

 $request = "SELECT ID, post_title, post_excerpt FROM $wpdb->posts WHERE post_status = 'publish' AND post_type='post' ORDER BY post_date DESC LIMIT $no_posts";

 $posts = $wpdb->get_results($request);

 if($posts) {

 foreach ($posts as $posts) {
 $post_title = stripslashes($posts->post_title);
 $permalink = get_permalink($posts->ID);

 $output .= '<li><h2><a href="' . $permalink . '" rel="bookmark" title="Permanent Link: ' . htmlspecialchars($post_title, ENT_COMPAT) . '">' . htmlspecialchars($post_title) . '</a></h2>';

 if($excerpts) {
 $output.= '<br />' . stripslashes($posts->post_excerpt);
 }

 $output .= '</li>';
 }

 } else {
 $output .= '<li>No posts found</li>';
 }

 echo $output;
}

Para chamar a função insira o código abaixo em algum arquivo do tema:

<?php  recent_posts(); ?>

Montar uma lista de links para os últimos posts


Postado em 21 de julho de 2010 por | Categorias: Loop no Wordpress, Posts | Tags: , , , , , | Sem comentários » | Comentar


Como pegar os 6 últimos posts da categoria Novidades, exibindo um link pemanente para os posts:

<ul>
<?
$args = array(
'numberposts' => 6,
'category_name'=>'Novidades',
'orderby'=>'date'
);

$posts_blog = get_posts($args);
foreach($posts_blog as $blogp)

{ ?>
<li><a href="<?=the_permalink($blogp->guid);?>"><strong><?=$blogp->post_title;?></strong></a></li>
<? } ?>
</ul>

Para pegar o ID do post oa inves do permalink, basta mudar a tag HREF para:

<a href="<?=$blogp->guid;?>">

Se preferir montar o link do post usando a ID como variavel utilize estes exemplos:

<a href="/?p=<?=$blogp->ID;?>">Leia mais</a>

<a href="<?php echo get_option('home'); ?>/?p=<?=$blogp->ID; ?>" title="Continuar lendo ">Continuar Lendo</a>

Também pode ser montado o permalink do post usando o parametro post_name que pega o nome do post:

<a href="/<?=$blogp->post_name;?>">Leia mais</a>

Abaixo um exemplo de como pegar os 3 últimos posts da categoria artigos, criando um link com o nome do post:

<ul>
<?
$args = array(
‘numberposts’ =>3,
‘category_name’=>’Artigos’,
‘orderby’=>’date’
);

$posts_blog = get_posts($args);
foreach($posts_blog as $blogp)

{ ?>
<li><a href=”<?php echo get_option(‘home’); ?>/<?=$blogp->post_name;?>”><strong><?=$blogp->post_title;?></strong></a></li>
<? } ?>
</ul>

Para ler mais de uma categoria, troque ‘category_name’=>’Artigos’, pela linha abaixo.  Os números significam os ID’s das categorias:

'categories'=>'3,5',

Uma outra forma de fazer um loop em uma certa categoria pegando os links dos posts. Abaixo um exemplo que lista os 6 últimos posts da categoria notícias:

<ul>
<?php query_posts("category_name=Notícias&showposts=6"); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

<li>
<a title="Acesse <?php the_title(); ?>" href="<?php the_permalink() ?>">
<?php the_title(); ?></a>
</li>

<?php endwhile; endif; ?>
</ul>

Para ler mais de uma categoria use a ID da categoria separado por virgula no parametro INCLUDE:

<?php query_posts("orderby=date&include=3,5&showposts=6"); ?>

Para saber mais sobre o método Query_posts, acesse:
http://www.pinceladasdaweb.com.br/blog/2008/03/14/query_posts-aprenda-a-personalizar-seu-blog-wordpress/


Categorias

Links

Tags

Autor do post bloginfo() Caminho do tema Campos Personalizados Categorias Codificação UTF8 Contac form 7 CSS Custom fields Custom Post Types data Dividir string explode() Formatação de datas Formatação de Hora get_ get_option() get_page_template() get_the_terms get_the_title() Hora IMG is_single() Janelas Links Lista de Categorias Lista de Posts Lista de ùltimos posts location.href Paginação Post_name Query_posts register_sidebar Sidebar the_author_nickname() the_category() the_tags() the_time() Titulo da página UFT8_encode UTF8 UTF8_decode Widgets wp_list_categories() âncoras

Copyright © 2017  |   W-Pedia – Wikipedia Wordpress BR  |  produzido por Henderson C. Torres