Listar posts que tenham um campo personalizado (Custom Field) com um determinado valor
Postado em 4 de maio de 2011 por Henderson | Categorias: Campos Personalizados, Custom Post Types, Loop no Wordpress | Tags: campo personalizado, Custom Field, Custom fields | Sem comentários » | 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>