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.

Retomando esse espaço, vamos falar de WordPress e Graffiti

Esse meu blog acabou ficando parado por 2 anos. Segui outros projetos, escrevi em blogs de terceiros, iniciei um blog específico de WordPress mas não consegui dar dinâmica e ritmo ao mesmo e resolvi o fechar. Com isso estou voltando ao meu blog no WordPress.com para compartilhar dicas e truques com WordPress, isso sempre me ajudou a aprender cada vez mais, principalmente o desafio de encontrar questões em fóruns e solucioná-las.

Falaremos também de graffiti, que é uma linguagem que me acompanha desde criança e coincidentemente ou não, hoje é o 44º Aniversário de Nascimento do HipHop, que é um movimento que engloba outras linguagens além  do graffiti.

É isso pessoal. Sigamos com as atividades.

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.