Snippets úteis para Wordpress
Este artigo foi arquivado. Isto significa que o artigo não será mais atualizado e pode conter erros ou omissões.
Nesta página estão alguns snippets úteis de programação relacionados com o Wordpress. Eles servem essencialmente para referência.
Contar todos os comentários de spam
VIEW `spam_comments` AS SELECT comment_author_IP, COUNT( comment_author_IP ) AS total
FROM wp_comments
WHERE comment_approved = "spam"
GROUP BY comment_author_IP
ORDER BY total DESC
Personalizar títulos de todas as páginas
Colocar este código no functions.php
/**
* Escreve o título de acordo com a página
* @author André Silva (http://andresilva.me)
*/
function page_title()
{
global $post;
global $s;
$dash = TRUE;
if( is_single() || is_page() ){
echo get_the_title();
} elseif( is_404() ){
echo 'A página solicitada não existe (404 Not Found)';
} elseif( is_search() ){
echo 'Pesquisa por \''.esc_html($s).'\'';
if( have_posts() )
{
$p = (get_query_var('paged')) ? get_query_var('paged') : 1;
echo ' (página '.$p.')';
}
} elseif( is_category() || is_tag() || is_month() || is_year() || is_day() || is_author() ){
wp_title('');
$p = (get_query_var('paged')) ? get_query_var('paged') : 1;
echo ' (página '.$p.')';
} elseif( is_home() && get_query_var('paged') != 0 ){
echo 'Todos os artigos (página ' . get_query_var('paged') . ')';
} elseif( is_home() ){
$dash = FALSE;
}
// separador, se necessário
if( $dash )
echo ' - ';
bloginfo('name');
}
// Override da função wp_title
add_filter('wp_title', 'page_title');
Breadcrumb em páginas
Colocar este código no functions.php. Colocar a função onde se pretende apresentar a breadcrumb. Teve efeitos positivos para o Google classificar a hierarquia das páginas.
/**
* Cria breadcrumbs consoante a página a ser visualizada
* @author André Silva (http://andresilva.me)
* @param $textBefore Texto antes da breadcrumb
* @param $textAfter Texto depois da breadcrumb
* @param $separator Separador entre níveis
* @return String com breadcrumb
*/
function generate_breadcrumb($textBefore = '', $textAfter = '', $separator = '>')
{
global $post;
$separator = " $separator ";
// localização inicial
if( is_home($post) )
return $textBefore.get_bloginfo('name').$textAfter;
$bc = $textBefore.'<a href="'.get_option('home').'/">'.get_bloginfo('name').'</a>';
if( is_single($post) ){
$bc .= $separator;
$cat = get_the_category();
$bc .= (count($cat) != 1) ? 'Artigos' : '<a href="'.get_category_link($cat[0]->term_id).'">'.$cat[0]->name.'</a>';
$bc .= $separator;
$bc .= $post->post_title;
} elseif( is_search() ){
global $s;
$bc .= $separator;
$bc .= 'Pesquisa por \''.esc_html($s).'\'';
} elseif( is_page() ){
$bc .= $separator;
$bc .= $post->post_title;
} elseif( is_category() ){
$bc .= $separator;
$bc .= single_cat_title('', false);
} elseif( is_tag() ){
$bc .= $separator;
$bc .= single_tag_title('', false);
} elseif( is_month() || is_year() || is_day() || is_author() ){
$bc .= $separator;
$bc .= 'Arquivo';
}
return $bc.$textAfter;
}