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/


Contar posts, custom posts e taxonomies no WordPress


Postado em 12 de abril de 2011 por | Categorias: Custom Post Types, Úteis | Tags: | 2 Comentários » | Comentar


Contar a quantidade de um determinado custom post type. No exemplo abaixo o custom post type se chama duvidas:

global $wpdb;
$numposts = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_type ='duvidas' AND post_status = 'publish'");

Contar a quantidade de uma taxonomia de id igual a 17:

global $wpdb;
$quantidade_posts = $wpdb->get_var("SELECT count FROM wp_term_taxonomy WHERE term_taxonomy_id = '17' ");

Contar a quantidade de posts regsitrados em uma determinada taxonomia. Este código funciona dentro de um arquivo de taxonomias (arquive). Primeiro é necessário pegar o ID da taxonomia corrente para depois contar quantos posts existem na taxonomia.

<?php if ( is_tax() ) {

 /** Função que busca o id da taxonomia (de nome categoria)**/
 $terms = get_the_terms( $post->ID , 'categoria');
 if($terms) {
 foreach( $terms as $term ) {

 $id_categoria_corrente = $term->term_id;
 }
 }
?>

Na segunda parte montamos o comando para contar a quantidade de posts da taxonomia ativa:

global $wpdb;
$numposts2 = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts INNER JOIN wp_term_relationships ON wp_posts.id = wp_term_relationships.object_id
INNER JOIN wp_term_taxonomy ON wp_term_relationships.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id WHERE wp_posts.post_type = 'duvidas' AND wp_posts.post_status = 'publish AND wp_term_taxonomy.term_id = '$id_categoria_corrente'");

WordPress marcar em qual página estou em um menu do sidebar


Postado em 12 de abril de 2011 por | Categorias: Custom Post Types | Sem comentários » | Comentar


O código abaixo exibe uma lista com 5 registros de um Custom Post Type chamado atuacao. O item da lista fica marcado conforme a página que o usuário esta visualizando atravéz da classe de css icone_pagina.

Primeiro pegue o título da página corrente com o comando abaixo:

<?php $pagenow = get_the_title(); ?>

 

Depois monte o loop com a lista dos custom post types:

<ul>
 <?
 $args = array(
 'numberposts' => 5,
 'post_type'=>'atuacao',
 'orderby'=>'title',
 'order'=>'ASC'
 );

 $posts_blog = get_posts($args);
 foreach($posts_blog as $blogp){
 ?>
 <li <?php if ($pagenow == $blogp->post_title) {echo 'class="icone_pagina"';} ?>>
 <a href="<? echo get_option('home') . '/atuacao/' .$blogp->post_name; ?>" title="Saiba mais sobre <?php echo $blogp->post_title; ?>" rel="bookmark"><?php echo $blogp->post_title; ?></a></li>
 <?php }  ?>
 </ul>


WordPress comandos úteis


Postado em 7 de abril de 2011 por | Categorias: Úteis | Sem comentários » | Comentar


Pegar ID do Post dentro do loop:

<?php $id_post = get_the_ID(); ?>

Exibir ID do Post na tela:

<?php the_ID(); ?>

Abrir janela pop-up centralizada na tela


Postado em 6 de abril de 2011 por | Categorias: Java Script | Sem comentários » | Comentar


Função em Java Script para abrir janela pop-up centralizada na tela:

<script language="JavaScript" type="text/JavaScript">
<!--
function NovaJanela(pagina,nome,w,h,scroll){
LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
settings = 'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',resizable'
win = window.open(pagina,nome,settings);
}
//-->
</script>

Para chamar a função use o modeo: NovaJaela(‘cainho/nome do arquivo’,’nome da janela’,’altura da janla’exibir barra de rolagem = yes ou no’), exemplo:

<input type="button" value="Eveto " name="b1" onClick="Javascript:NovaJanela('eventos.php?modo=novo','Eventos','788','540','no');">

Delimitar título com substr()


Postado em 6 de abril de 2011 por | Categorias: PHP | Tags: | Sem comentários » | Comentar


Para limitar a quantidade de caracteres de uma variável utilize o substr(). No exemplo abaixo o número zero é a posição incial e o número 30 é a quantidade de caracteres:

$titulo_registro = substr($variavel, 0, 30) . "...";

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 **/

 


Includes no WordPress


Postado em 25 de março de 2011 por | Categorias: Templates | Sem comentários » | Comentar


Para fazer uma inclusão de arquivo podemos usar o comando INCLUDE do PHP. No exemplo abaixo o arquivo inc_propaganda.php tem que estar na mesma pasta do arquivo que faz a chamada:

<?php include("inc_propaganda.php"); ?>

 

Abaixo uma lista de comandos póprios do WordPress para inclusão de arquivos dentro dos templates.

<?php include(TEMPLATEPATH . '/sidebar-novidades.php'); ?>

<?php get_sidebar(); ?>

<?php get_header(); ?>

<?php get_footer(); ?>


Limitar busca do WordPress


Postado em 25 de março de 2011 por | Categorias: Busca | Sem comentários » | Comentar


Abaixo um código que personaliza a busca do WordPress retirando da pesquisa 3 categorias de id= 6, 27 e 29. Adicione o código abaixo no arquivo functions.php

/** FILTRO PARA BUSCA**/
// Remove resultados da busca
function mySearchPostsFilter($query) {
if ($query->is_search) {
$query->set('cat','6,27, 29'); // os IDs das categorias excluidas da busca
}
return $query;
}
add_filter('pre_get_posts','mySearchPostsFilter');

Colocar resumo (excerpt) em página do WordPress


Postado em 18 de março de 2011 por | Categorias: Functions | Sem comentários » | Comentar


Para adcionar a funcionalidade de resumo (exerpt) nas páginas do WordPress, coloque o código abaixo no arquivo functions.php do seu tema:

function my_init() {
add_post_type_support('page', array('excerpt'));
}
add_action('init', 'my_init');

Exibir o nome da taxonomy na tela


Postado em 18 de março de 2011 por | Categorias: Custom Post Types | Tags: | 1 Comentário » | Comentar


Quando criar uma lsita de categoria customizadas em custom_taxonomy, você pode precisar mostrar o nome da taxonomy de um determinado post, para isso use o comando abaixo:

<?php
global $post;
$terms = get_the_terms($post->id, 'segmentos');
$nome_taxonomy = $terms[0]->name;
echo $nome_taxonomy;
?>

Onde está escrito segmentos entra o nome da taxonomy que você declarou no arquivo functions.php.

Resumo do comando:

global $post;
$terms = get_the_terms($post->id, 'TAXONOMY_NAME');

$terms[0]->term_id;
$terms[0]->name;
$terms[0]->slug;
$terms[0]->term_group;
$terms[0]->term_taxonomy_id;
$terms[0]->taxonomy;
$terms[0]->description;
$terms[0]->parent;
$terms[0]->count;

Verificar se existe imagem em destaque no post


Postado em 1 de março de 2011 por | Categorias: Thumbnail | 1 Comentário » | Comentar


Use o comando has_post_thumbnail() para verificar se existe uma imagem em destaque no post. Os códigos abaixo exibem uma imgagem alternativa caso não exista uma imagem cadastrada para o post.

<?php if ( has_post_thumbnail() ) { ?>
 <? the_post_thumbnail( 'equipe' ); ?>
 <?php }else{ ?>
 <img src="<? bloginfo('stylesheet_directory'); ?>/images/avatar-equipe.jpg" alt="Equipe"/>
 <?php } ?>

Exibir o título da página-mãe dentro de uma subpágina filha no WordPress


Postado em 17 de fevereiro de 2011 por | Categorias: Páginas | Tags: | Sem comentários » | Comentar


Em alguns casos é necessário descobrir o título de uma página mãe quando estamos posicionado dentro de uma página filha. Para isso use o código:

<?php
if($post->post_parent) {
 $parent_title = get_the_title($post->post_parent);
 echo $parent_title;
} else {
 wp_title('');
}
?>


Configurando os arquivos para Custom Post Types no WordPress


Postado em 3 de fevereiro de 2011 por | Categorias: Custom Post Types | Tags: | Sem comentários » | Comentar


Após declarar os códigos no arquivo functions.php para registrar posts do tipo Custom Post Types, você deve criar os arquivos PHP para exibir as informações dos novos custom posts no site.

Vamos começar criando uma página para exibir uma lista de posts personalizados do tipo Projetos (vamos supor que registramos no arquivo funtions.php do tema um Custom Post type chamado Projetos).

Para saber como registrar um Custom Post Type consulte:
http://codex.wordpress.org/Function_Reference/register_post_type
Primeiro cópie o arquivo page.php do seu tema e salve com o nome de page-projetos.php. Coloque o código abaixo no topo da página para criar uma página de template personalizada:

<?php
/*
Template Name: Projetos
*/
?>

Envie o arquivo para a pasta do tema em seu site. Acesse do painel de controle do WordPress crie uma nova página chamada Projetos, no box da esquerda chamado atributos da página selecione o item projetos nas opções de modelo.

Para criar uma lista de custom post types de Projetos use o loop abaixo:

<?php query_posts( array( 'post_type' => 'projetos',  'orderby' => 'date', 'order' => 'DESC', 'showposts' => 10) );?>
<?php if(have_posts()) : ?><?php while(have_posts()) : the_post() ?>
<div>

<div><? the_post_thumbnail( 'projetos_arquive' ); ?></div>

<div>
<h2><a href="<?php the_permalink();?>" rel="bookmark" title="saiba mais sobre <?php the_title();?>"><?php the_title();?></a></h2>
<?php the_excerpt(); ?>
<br />
<div><a href="<?php the_permalink();?>" rel="bookmark" title="saiba mais sobre <?php the_title();?>"><img src="<? bloginfo('stylesheet_directory'); ?>/images/botao_saiba_mais.jpg" alt="saiba mais sobre <?php the_title();?>"/></div>

</div>

<!--/area_colunas-->
</div>
<?php endwhile; endif; ?>

Observe o comando query_post antes do loop, nele temos definido que o loop vai gerar uma lista de 10 posts do tipo projetos ordenados por data de forma descendente (da data mais recente para menos recente).

Agora vamos montar o arquivo que vai ler o conteúdo do post personalizado. Basta fazer uma cópia do arquivo single.php e chamar de single-projetos.php.

Outros exemplos:

o arquivo single vai ser com o nome do Custom Post Type, no nosso exemplo criamos um Custom Post Type chamado musicas:
single-musicas.php

O arquivo para chamar as categorias criadas será com o nome registrado para taxonomy, no caso tipos:
taxonomy-genero.php

Saiba mais em: http://codex.wordpress.org/Function_Reference/register_post_type


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 © 2018  |   W-Pedia – Wikipedia Wordpress BR  |  produzido por Henderson C. Torres