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;$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']) && !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á!







