Dev (Back & Front)ARTIGO

5 truques e dicas para a navegação do WordPress

Vamos hoje continuar a desbravar uo mundo de truques para grandes empreitadas com o seu site. Com essas dicas você poderá realizar pequenas ações em seu site ou blog, tornando-o mais funcional, mais seguro, mais atrativo oe até mesmo mais bonito.

1. Adicionar uma caixa de pesquisa à navegação

Se você pretende adicionar uma caixa de pesquisa automaticamente à navegação do seu site, utilize o seguinte truque: copie e cole o código para dentro do arquivo functions.php do seu template:

add_filter('wp_nav_menu_items','add_search_box', 10, 2);
function add_search_box($items, $args) {
ob_start();
get_search_form();
$searchform = ob_get_contents();
ob_end_clean();
$items .= '<li>' . $searchform . '</li>';
return $items;
}

2. Remover o atributo “title” dos links no menu

Os atributos “Title” para os links de menu podem influenciar a forma de trabalhar do jQuery do seu site, especialmente se você estiver usando um menu dropdown. Utilize o seguinte truque para remover esse atributo: copie e cole o código para dentro do arquivo functions.php do seu template:

function my_menu_notitle( $menu ){
return $menu = preg_replace('/ title="(.*?)"/', '', $menu );
}
add_filter( 'wp_nav_menu', 'my_menu_notitle' );
add_filter( 'wp_page_menu', 'my_menu_notitle' );
add_filter( 'wp_list_categories', 'my_menu_notitle' );

3. Editar saídas da navegação

Este truque dá-lhe o controle absoluto das saídas dos menus de navegação do WordPress. Coloque este código no arquivo function.php do seu template e modifique o código PHP para que o resultado de saída seja o que você deseja. Por exemplo, no WordPress 3.0 no construtor de Menus, você pode adicionar títulos aos items do menu. Customizando este resultado de saída, poderá fazer com que o título passe por uma classe de CSS que lhe permita estilizar esses títulos de forma diferente.

class description_walker extends Walker_Nav_Menu
{
function start_el(&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;$output, $item, $depth, $args)
{
 
global $wp_query;
$indent = ( $depth ) ? str_repeat( "t", $depth ) : '';
$class_names = $value = '';
$classes = empty( $item->classes ) ? array() : (array) $item->classes;
$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) );
$class_names = '' : '"';
$output .= $indent . '
<li id="menu-item-'. $item->ID . '"' . $value . $class_names .'>';
$attributes  = ! empty( $item->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) .'"' : '';
$attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';
$attributes .= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) .'"' : '';
$attributes .= ! empty( $item->url )        ? ' href="'   . esc_attr( $item->url        ) .'"' : '';
 
if($depth != 0)
{
$description = $append = $prepend = "";
}
$item_output = $args->before;
$item_output .= '<a' . $attributes . '>';
$item_output .= $args->link_before .$prepend.apply_filters( 'the_title', $item->title, $item->ID ).$append;
$item_output .= $description.$args->link_after;
$item_output .= '</a>';
$item_output .= $args->after;
$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
}
}

4. Navegação de páginas sem plugin

Crie uma navegação de páginas interna (breadcrumbs) sem recorrer a um plugin como o BreadcrumbXT. Insira o seguinte código no arquivo functions.php:

  
function the_breadcrumb() {
echo '<ul id="crumbs">';

if (!is_home()) {
echo '<li><a href="';
echo get_option('home');
echo '">';
echo 'Home';
echo "</a></li>";

if (is_category() || is_single()) {
echo '<li>';
the_category(' </li><li> ');

if (is_single()) {
echo "</li><li>";
the_title();
echo '</li>';
}
} elseif (is_page()) {
echo '<li>';
echo the_title();
echo '</li>';
}
}

elseif (is_tag()) {single_tag_title();}

elseif (is_day()) {echo"<li>Archive for "; the_time('F jS, Y'); echo'</li>';}

elseif (is_month()) {echo"<li>Archive for "; the_time('F, Y'); echo'</li>';}

elseif (is_year()) {echo"<li>Archive for "; the_time('Y'); echo'</li>';}

elseif (is_author()) {echo"<li>Author Archive"; echo'</li>';}

elseif (isset($_GET['paged']) &amp;&amp; !empty($_GET['paged'])) {echo "<li>Blog Archives"; echo'</li>';}

elseif (is_search()) {echo"<li>Search Results"; echo'</li>';}
echo '</ul>';
}

Insira depois o seguinte código no arquivo header.php:

<?php the_breadcrumb(); ?>

5. Paginação

Quer colocar uma paginação eficiente no final do seu site? Insira o seguinte código no arquivo functions.php:  

function my_paginate_links() {

global $wp_rewrite, $wp_query;
$wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;
$pagination = array(
'base' => @add_query_arg('paged','%#%'),
'format' => '',
'total' => $wp_query->max_num_pages,
'current' => $current,
'prev_text' => __('« Previous'),
'next_text' => __('Next »'),
'end_size' => 1,
'mid_size' => 2,
'show_all' => true,
'type' => 'list'
);

if ( $wp_rewrite->using_permalinks() )
$pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' );

if ( !empty( $wp_query->query_vars['s'] ) )
$pagination['add_args'] = array( 's' => get_query_var( 's' ) );
echo paginate_links( $pagination );
}

Não se esqueça de utilizar CSS para estilizar essa paginação do jeito que mais gostar!

Até já!

é o fundador da Escola Dinheiro. Empreendedor e blogueiro, trabalha em tempo integral na internet e dedica a sua vida à produção e compartilhamento de conteúdos numa rede de projetos que conta já com alguns dos maiores e mais reconhecidos blogs do Brasil e de Portugal, nomeadamente o Escola Dinheiro, Escola WordPress e também a Galeria de Blogs. É estudante de Engenharia Informática em Sistemas de Informação e totalmente viciado em Web2.0. Paulo Faustino é também palestrante e consultor em gestão de campanhas de afiliação, otimização de blogs WordPress e ainda monetização/rentabilização de websites e blogs. No Twitter, siga @escoladinheiro.

Ver perfil