Diagrama de hierarquia de um template WordPress
Postado em 13 de dezembro de 2011 por Henderson | Categorias: Úteis | Tags: Diagrama template | Sem comentários » | Comentar
http://codex.wordpress.org/images/1/18/Template_Hierarchy.png
http://codex.wordpress.org/images/1/18/Template_Hierarchy.png
Coloque o código abaixo no arquivo functions.php do seu tema:////////////////////////////////////////////////////////////////////////// /// FUNCAO PARA FAZER PAGINAÇÃO ///// //////////////////////////////////////////////////////////////////////// function wp_corenavi() { global $wp_query, $wp_rewrite; $pages = ''; $max = $wp_query->max_num_pages; if (!$current = get_query_var('paged')) $current = 1; $a['base'] = str_replace(999999999, '%#%', get_pagenum_link(999999999)); $a['total'] = $max; $a['current'] = $current; $total = 1; //1 - display the text "Page N of N", 0 - not display $a['mid_size'] = 5; //how many links to show on the left and right of the current $a['end_size'] = 1; //how many links to show in the beginning and end $a['prev_text'] = '« Anterior'; //text of the "Previous page" link $a['next_text'] = 'Próxima »'; //text of the "Next page" link if ($max > 1) echo '<div>'; if ($total == 1 && $max > 1) $pages = '<span>Página ' . $current . ' de ' . $max . '</span>'."\r\n"; echo $pages . paginate_links($a); if ($max > 1) echo '</div>'; }Para ativar a função nas páginas que devem entrar a páginação coloque o código abaixo:
if (function_exists('wp_corenavi')) wp_corenavi();
Para criar breadcrumbs wordpress em seu site copie e cole o código abaixo no arquivo functions.php do seu tema:
////////////////////////////////////////////////////////////////////////
// BREADCRUMBS
////////////////////////////////////////////////////////////////////////
function dimox_breadcrumbs() {
$delimiter = '»';
$home = 'InÃcio'; // text for the 'Home' link
$before = '<span>'; // tag before the current crumb
$after = '</span>'; // tag after the current crumb
if ( !is_home() && !is_front_page() || is_paged() ) {
echo '<div id="crumbs">';
global $post;
$homeLink = get_bloginfo('url');
echo '<a href="' . $homeLink . '" rel="home" title="' . $home . '">' . $home . '</a> ' . $delimiter . ' ';
if ( is_category() ) {
global $wp_query;
$cat_obj = $wp_query->get_queried_object();
$thisCat = $cat_obj->term_id;
$thisCat = get_category($thisCat);
$parentCat = get_category($thisCat->parent);
if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));
echo $before . 'Archive by category "' . single_cat_title('', false) . '"' . $after;
} elseif ( is_day() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '" rel="bookmark" title="'.get_the_time('Y').'">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '" rel="bookmark" title="'.get_the_time('F').'">' . get_the_time('F') . '</a> ' . $delimiter . ' ';
echo $before . get_the_time('d') . $after;
} elseif ( is_month() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '" rel="bookmark" title="'.get_the_time('Y').'">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo $before . get_the_time('F') . $after;
} elseif ( is_year() ) {
echo $before . get_the_time('Y') . $after;
} elseif ( is_single() && !is_attachment() ) {
if ( get_post_type() != 'post' ) {
$post_type = get_post_type_object(get_post_type());
$slug = $post_type->rewrite;
echo '<a href="' . $homeLink . '/' . $slug['slug'] . '/" rel="bookmark" title="'.$post_type->labels->singular_name.'">' . $post_type->labels->singular_name . '</a> ' . $delimiter . ' ';
echo $before . get_the_title() . $after;
} else {
$cat = get_the_category(); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo $before . get_the_title() . $after;
}
} elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ) {
$post_type = get_post_type_object(get_post_type());
echo $before . $post_type->labels->singular_name . $after;
} elseif ( is_attachment() ) {
$parent = get_post($post->post_parent);
$cat = get_the_category($parent->ID); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo '<a href="' . get_permalink($parent) . '" rel="bookmark" title="'.$parent->post_title.'">' . $parent->post_title . '</a> ' . $delimiter . ' ';
echo $before . get_the_title() . $after;
} elseif ( is_page() && !$post->post_parent ) {
echo $before . get_the_title() . $after;
} elseif ( is_page() && $post->post_parent ) {
$parent_id = $post->post_parent;
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '" rel="bookmark" title="'.get_the_title($page->ID).'">' . get_the_title($page->ID) . '</a>';
$parent_id = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' ';
echo $before . get_the_title() . $after;
} elseif ( is_search() ) {
echo $before . 'Search results for "' . get_search_query() . '"' . $after;
} elseif ( is_tag() ) {
echo $before . 'Posts tagged "' . single_tag_title('', false) . '"' . $after;
} elseif ( is_author() ) {
global $author;
$userdata = get_userdata($author);
echo $before . 'Articles posted by ' . $userdata->display_name . $after;
} elseif ( is_404() ) {
echo $before . 'Error 404' . $after;
}
if ( get_query_var('paged') ) {
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
echo __('Page') . ' ' . get_query_var('paged');
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
}
echo '</div>';
}
} // end dimox_breadcrumbs()
Para exibir o menu Breadcrumbie no site, coloque o código abaixo nos arquivos do tema no qual deseja exibir o menu. Normalmente coloco nos arquivos page.php, single.php e outros.
<?php if (function_exists('dimox_breadcrumbs')) dimox_breadcrumbs(); ?>
Fonte:
http://dimox.net/wordpress-pagination-without-a-plugin-wp-pagenavi-alternative/
Para usar as funções do WordPress em qualquer arquivo fora do tema basta incluir o arquivo wp-blog-header.php que fica na raiz da instalação do WordPress. Use o código abaixo:
<?php
/* Usar as funções do WordPress dentro de um arquivo fora do tema */
define('WP_USE_THEMES', false);
require('wp-blog-header.php');
?>
Para usar um arquivo que não pertence ao tema que esteja na pasta do tema basta colcoar o caminho completo do arquivo wp-blog-header.php, veja:
<?php
/* Usar as funções do WordPress dentro de um arquivo fora do tema */
define('WP_USE_THEMES', false);
require('../../../wp-blog-header.php');
?>
<h3>Arquivos</h3>
<ul>
<?php wp_get_archives('type=monthly'); ?>
</ul>
<h3>Categorias</h3>
<ul>
<?php wp_list_categories('title_li=&show_count=1');?>
</ul>
<h3>Links</h3>
<ul>
<?php wp_list_bookmarks('title_li=&categorize=0');?>
</ul>
<h3>Tags</h3>
<p><?php wp_tag_cloud();?></p>
Abaixo um código útil para listar todos os estados brasileiros e as rescpectivas siglas dentro de um select:
<select name="estado" style="width:500px;" maxlength="150" /> <option value="">Selecione ...</option> <option value="AC">Acre</option> <option value="AL">Alagoas</option> <option value="AP">Amapá</option> <option value="AM">Amazonas</option> <option value="BA">Bahia</option> <option value="CE">Ceará</option> <option value="DF">Distrito Federal</option> <option value="GO">Goiás</option> <option value="ES">Espírito Santo</option> <option value="MA">Maranhão</option> <option value="MT">Mato Grosso</option> <option value="MS">Mato Grosso do Sul</option> <option value="MG">Minas Gerais</option> <option value="PA">Pará</option> <option value="PB">Paraiba</option> <option value="PR">Paraná</option> <option value="PE">Pernambuco</option> <option value="PI">Piauí</option> <option value="RJ">Rio de Janeiro</option> <option value="RN">Rio Grande do Norte</option> <option value="RS">Rio Grande do Sul</option> <option value="RO">Rondônia</option> <option value="RR">Roraima</option> <option value="SP">São Paulo</option> <option value="SC">Santa Catarina</option> <option value="SE">Sergipe</option> <option value="TO">Tocantins</option> </select>
Abaixo um código em PHP que pega o nome do estado brasileiro através da sigla:
// Pega o nome do estado através da sigla
switch ($sigla_estado) {
case "AC":
$nome_stado = "Acre";
break;
case "AL":
$nome_stado = "Alagoas";
break;
case "AP":
$nome_stado = "Amapá";
break;
case "AM":
$nome_stado = "Amazonas";
break;
case "BA":
$nome_stado = "Bahia";
break;
case "CE":
$nome_stado = "Ceará";
break;
case "DF":
$nome_stado = "Distrito Federal";
break;
case "GO":
$nome_stado = "Goiás";
break;
case "RO":
$nome_stado = "Rondônia";
break;
case "ES":
$nome_stado = "Espírito Santo";
break;
case "MA":
$nome_stado = "Maranhão";
break;
case "MT":
$nome_stado = "Mato Grosso";
break;
case "MS":
$nome_stado = "Mato Grosso do Sul";
break;
case "MG":
$nome_stado = "Minas Gerais";
break;
case "PA":
$nome_stado = "Pará";
break;
case "PB":
$nome_stado = "Paraiba";
break;
case "PR":
$nome_stado = "Paraná";
break;
case "PE":
$nome_stado = "Pernambuco";
break;
case "PI":
$nome_stado = "Piauí";
break;
case "RJ":
$nome_stado = "Rio de Janeiro";
break;
case "RN":
$nome_stado = "Rio Grande do Norte";
break;
case "RS":
$nome_stado = "Rio Grande do Sul";
break;
case "RO":
$nome_stado = "Rondônia";
break;
case "RR":
$nome_stado = "Roraima";
break;
case "SP":
$nome_stado = "São Paulo";
break;
case "SC":
$nome_stado = "Santa Catarina";
break;
case "SE":
$nome_stado = "Sergipe";
break;
case "TO":
$nome_stado = "Tocantins";
break;
}
Clique na imagem para ampliar
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'");
Pegar ID do Post dentro do loop:
<?php $id_post = get_the_ID(); ?>
Exibir ID do Post na tela:
<?php the_ID(); ?>
Clique na imagem para ampliar:
Saiba mais em: http://codex.wordpress.org/pt-br:Hierarquia_de_Modelos_Wordpress
Em algumas hospedagens Locaweb a instalação do WordPress PT de versões superiores a 2.9 pode apresentar um erro na tela de configurações gerais e não exibir a tela completa e nem o botão de salvar.
Para resolver o problema renomeie o arquivo php-cgi.ini pra php.ini que fica na raiz da hospedagem usando um programa de FTP. Isso pode resolver outros problemas como o buffer de memória.
Mostrar o tema default para os usuários do Internet Explorer 6. Como sabemos o IE6 não colabora em nada para nossos blogs/sites, e a melhor opção é mostrar o tema default do WordPress para que eles possam ler nossos artigos, mesmo sem conhecer nosso layout principal.
Basta inserir o código abaixo no arquivo functions.php de seu tema.
add_filter('template', 'serve_default_to_iesix'); add_filter('option_template', 'serve_default_to_iesix'); add_filter('option_stylesheet', 'serve_default_to_iesix'); function serve_default_to_iesix($theme) { if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6') !== false) $theme = 'default'; return $theme; }
Estrutura do Loop do wordpress que mostrar os posts e páginas que estão armazenados no banco de dados.
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>Aqui dentro entram os demais comandos
<?php endwhile; endif; ?>
Códigos básicos que entram dentro do loop para montar o template:
<?php the_author(); ?> – Este código tem a função de exibir o nome do autor do post.
<?php the_date(’d / m / Y’); ?>- Mostra a data em que o Post foi publicado
<?php the_time(’g:i a’); ? >- Mostra a hora em que o Post foi publicado.
<?php the_author_email(); ?>- Exibe o e-mail do autor que publicou o post.
<?php the_title(); ?>- Responsável por exibir o título do post
<?php the_permalink() ?>- Exibe o link do Post (permalink)
<?php get_calendar(); ?>-Exibe o calendário do seu Blog
Abaixo um modelo bom pra WordPress de um arquivo robots.txt para ser colocado na raiz da hospedagem:
User-agent: *
# remova os diretorios
Disallow: /cgi-bin/
Disallow: /wp-admin/
Disallow: /wp-includes/
User-agent: Googlebot
# remover scrips css e afins
Disallow: /*.php$
Disallow: /*.js$
Disallow: /*.inc$
Disallow: /*.css$
Disallow: /*.gz$
Disallow: /*.wmv$
Disallow: /*.cgi$
Disallow: /*.xhtml$# qualquer endereco que contenha ?
Disallow: /*?*# permitir o adsense em qualquer url
User-agent: Mediapartners-Google*
Disallow:
Allow: /*#Sitemap
Sitemap: http://www.site.com.br/sitemap.xml
Site gerador de Robots: http://www.marketingdebusca.com.br/robots-txt/
Wikipédia: http://pt.wikipedia.org/wiki/Robots.txt
Artigo do BRPOINT sobre Robots.txt: http://www.brpoint.net/o-robotstxt-ideal-para-o-wordpress.html
Primeiramente vamos ao requisitos para este processo:
1. Teremos que ter uma imagem no formato .ico com 16×16 pixels.
2. Salvar esta imagem com o nome “favicon.ico”.
Se você não quer fazer uma favicon no site www.favicon.cc há varias favicons grátis para download.
Feito isto vamos a instalação :
Salve a favicon na pasta do seu tema.ex: ../wp-content/themes/seutema/
Agora teremos que editar nosso arquivo header.php adicionando esta linha de código antes de :
<link rel="shortcut icon" href="<?php bloginfo('template_directory'); ?>/favicon.ico" />
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 © 2012 | W-Pedia – Wikipedia Wordpress BR | produzido por Henderson C. Torres