Dando continuidade à nossa série que começou com um artigo com 13 truques e dicas básicos para WordPress e depois mais 6 truques e dicas de branding para WordPress e 6 truques e dicas para o painel de controlo do WordPress, vamos hoje continuar a oferecer-lhe pequenos truques para grandes empreitadas com o seu blog! Os truques e dicas para WordPress são atualmente uma das melhores formas de conseguir realizar pequenas acções em seu blog, tornando-o mais funcional, mais seguro, mais atrativo ou mesmo mais bonito. Já aqui publicámos imensos artigos com pequenos truques e dicas de código, os quais fizeram enorme sucesso junto da nossa comunidade. Continuamos hoje então a nossa série de artigos com truques e dicas para WordPress, os quais poderá utilizar em qualquer blog WordPress ou mesmo diretamente nos seus templates wordpress.

Aproveite também para ler alguns dos melhores artigos que já publicámos até hoje com diversos truques, dicas e hacks para o seu WordPress. Neles encontrará certamente alguns dos truques que estava mesmo precisando para o seu blog e para automatizar ao máximo a forma como você trabalha com o WordPress. Tome nota:

1. ADICIONAR UMA CAIXA E PESQUISA À NAVEGAÇÃO

Se pretende adicionar uma caixa de pesquisa automaticamente à navegação do seu blog, utilize o seguinte truque. Copie e cole o código para dentro do ficheiro 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 ATRIBUTO TITLE DOS LINKS DE MENU

Os atributos “Title” para os links de menu podem influenciar a forma de trabalhar do jQuery do seu site, especialmente se você estiver a usar um menu dropdown. Utilize o seguinte truque para remover esse atributo. Copie e cole o código para dentro do ficheiro 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 controlo absoluto das saídas dos menus de navegação do WordPress. Coloque este código no ficheiro function.php do seu template e modifique o código PHP para que o resultado de saída seja aquele 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 ficheiro 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 ficheiro header.php:

<?php the_breadcrumb(); ?>

5. PAGINAÇÃO

Quer colocar uma paginação eficiente no final do seu blog? Insira o seguinte código no ficheiro 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á!