WordPress – Como adicionar um campo de busca no menu do site

Em um projeto específico onde o tema do WordPress foi comprado resolvi por fazer todas as alterações criando um novo plugin. E uma dessas alterações era que na versão mobile o cliente queria colocar um campo de busca para que os visitantes encontrassem com facilidade os produtos que desejam.

Vale lembrar que essa aplicação pode ser feita no functions.php do seu tema, sem a necessidade de criar um novo plugin como comentei acima.

Para escolher em qual menu o seu campo de busca será exibido, na linha 10 troque o responsive-menu pelo nome do menu em questão.

Ao ser impresso esse campo de busca no seu menu, ele estará envolvido em uma <li> com a classe search-in-nav para facilitar sua personalização.

Pronto, isso é tudo pessoal.

Anúncios
WordPress

WordPress – Redirecionar para o post se o resultado de pesquisa retornar somente um post

Recentemente em um projeto o cliente solicitou que quando o resultado da pesquisa retornasse apenas um item, seja ele post, página, produto ou outro CPT, o WordPress redirecionasse diretamente para esse item.

Depois de pesquisar e aplicar essa funcionalidade pensei que essa funcionalidade é tão simples e extremamente “user friendly” que deveria ser nativo do WordPress.

Vamos ao trabalho.

Abra o arquivo functions.php do seu tema e adicione ao final o seguinte trecho de código:

Pronto, isso é tudo.

Function: capital_P_dangit( $text )

capital_P_dangit( $text )

Essa função foi adicionada ao WordPress na versão 3.0 após longa discussão (veja aqui em inglês) sobre a forma correta de como escrever a palavra.

O que ela faz efetivamente é corrigir a palavra no título da postagem, no conteúdo e nos comentários. Para isso ela usa filtros (que é um assunto para um post futuro) e caso precise remover essa opção do seu WP você pode usar a função remove_filter() dessa forma:

remove_filter( 'the_title', 'capital_P_dangit', 11 );
remove_filter( 'the_content', 'capital_P_dangit', 11 );
remove_filter( 'comment_text', 'capital_P_dangit', 31 );

Veja a documentação oficial dessa função clicando aqui.

Adicionando favicon no WordPress

Dica rápida para adicionar favicon ao WordPress. Cole o seguinte em seu functions.php:

function my_favicon() {
 $src = get_stylesheet_directory_uri() . '/images/favicon.png';
 echo '<link rel="shortcut icon" href="'. $src . '" />';
}
add_action('wp_head', 'my_favicon');
add_action('admin_head', 'my_favicon');

Mais posts no Bloglite

Pessoal, mais dois posts meus no site /Bloglite foram publicados.

Um fala sobre [shortcodes] que é uma API oferecida pelo WordPress e que ajuda e muito a subir o nível do seu desenvolvimento, veja aqui. No post explico o que é e também criar seus próprios shortcodes. Minha proposta é criar uma coleção de shortcodes de forma colaborativa ao longo dp tempo.

E o outro post é sobre o bom e velho plugin de formulários de contato, o Contact Form 7, veja. No post falo do seu uso mais básico até o avançado. Apresento alguns plugins que extendem as funcionalidades do plugin e finalizo com algumas ideias e possibilidades com o plugin.

Últimos posts com a função wp get recent posts

É comum encontrar nos fóruns sobre WordPress as pessoas perguntarem como exibir os últimos posts do blog. Normalmente fazem isso na sidebar e para alguns casos o widget nativo pode fazer isso.

Para casos mais específicos, temos uma função pronta que resolve essa questão. Sem a necessidade de escrever novos loops, basta fazer um foreach para imprimir o resultado que deseja.

A função é a wp get recent posts, veja as descrições completas no codex.

O uso padrão dela é:

$args = array(
 'numberposts' = 10,
 'offset' => 0,
 'category' => 0,
 'orderby' => 'post_date',
 'order' => 'DESC',
 'include' => ,
 'exclude' => ,
 'meta_key' => ,
 'meta_value' =>,
 'post_type' => 'post',
 'post_status' => 'draft, publish, future, pending, private',
 'suppress_filters' => true );
$recent_posts = wp_get_recent_posts( $args, ARRAY_A );

Com esses argumentos você consegue exibir uma lista com N posts, de acordo com uma categoria, ordenando por data e muitas outras possibilidades.

Veja um exemplo básico (copiado do codex e adaptado apenas para exemplo):

$recent_posts = wp_get_recent_posts();
foreach( $recent_posts as $recent ){
    echo $recent["post_title"];
}

Mais uma função simples e que ajuda na agilidade do desenvolvimento.

sanitize_title()

sanitize title

Mais uma da série de funções que aprendi a usar fazendo migrações com o WordPress.

É a sanitize_title(). Ela elimina espaços, acentos, tags e caracteres especiais de uma string. Muito útil para gerar url’s.

$title = Meu exemplo de String”;
 $url = sanitize_title( $title );
/* Return meu-exemplo-de-string */

wp strip all tags

Dica rápida, simples e útil. A função wp_strip_all_tags() do WordPress é útil em vários momentos. O que ela faz é simples e direto, remove todas as tags de uma string.

Eu acabei (conhecendo e) usando ela para migrar um site feito em outro CMS para WordPress.

Veja um exemplo:

$text ='<div>Texto de exemplo aqui.</div><script type="text/javascript">...</script><style type="text/css"></style><!-- Comment -->';
$strip_text = wp_strip_all_tags( $text, true );
// Um echo produz: “Texto de exemplo aqui.”