Como o WordPress tem uma política de Open Source, estão constantemente a aparecer pequenas dicas para melhorar o seu desempenho que são descobertas pelos milhares de developers e webmasters que utilizam a plataforma. Hoje, vamos mostrar mais 8 poderosas dicas para WordPress que você pode utilizar!

 escola blog

1. Forçar imagens JPG perfeitas

O WordPress por defeito não utiliza as imagens JPG com a qualidade a 100%, ou seja, qualquer imagem que você coloque no seu site não irá ser apresentada com a mesma qualidade. Isto acontece porque o WordPress tenta conservar alguma largura de banda e espaço cada vez que as imagens têm que ser apresentadas. Portanto, se você colar o seguinte código no seu ficheiro functions.php, as imagens passarão a ser apresentadas com a qualidade máxima.

add_filter( 'jpeg_quality', 'eb_jpeg_quality' );
function eb_jpeg_quality() {
 return 100;
}

 

2. Criar Breadcrumbs

Os breadcrumbs são excelentes guias dentro de um site e são uma ótima ferramente que melhora imenso a navegabilidade no site. Por isso mesmo, cole o seguinte código no seu ficheiro functions.php:

function breadcrumb() {

  $separador = '|';
  $inicio = 'Início'; // Texto para o link de Início

  $antes = '<span class="atual">';
  $depois = '</span>'; 

  if ( !is_home() && !is_front_page() || is_paged() ) {

    echo '<div id="breadcrumb">';

    global $post;
    $linkInicio = get_bloginfo('url');

    echo '<a href="' . $linkInicio . '">' . $inicio . '</a> ' . $separador . ' ';

    if ( is_category() ) {
      global $wp_query;
      $cat_obj = $wp_query->get_queried_object();
      $thisCat = $cat_obj->term_id;
      $thisCat = get_category($thisCat);
      $categoriaMae = get_category($thisCat->parent);
      if ($thisCat->parent != 0) echo(get_category_parents($categoriaMae, TRUE, ' ' . $separador . ' '));
      echo $antes . 'Artigos da Categoria "' . single_cat_title('', false) . '"' . $depois;

    } elseif ( is_day() ) {
      echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $separador . ' ';
      echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F') . '</a> ' . $separador . ' ';
      echo $antes . get_the_time('d') . $depois;

    } elseif ( is_month() ) {
      echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $separador . ' ';
      echo $antes . get_the_time('F') . $depois;

    } elseif ( is_year() ) {
      echo $antes . get_the_time('Y') . $depois;

    } elseif ( is_single() && !is_attachment() ) {
      if ( get_post_type() != 'post' ) {
        $post_type = get_post_type_object(get_post_type());
        $slug = $post_type->rewrite;
        echo '<a href="' . $homeLink . '/' . $slug['slug'] . '/">' . $post_type->labels->singular_name . '</a> ' . $separador . ' ';
        echo $antes . get_the_title() . $depois;
      } else {
        $cat = get_the_category(); $cat = $cat[0];
        echo get_category_parents($cat, TRUE, ' ' . $separador . ' ');
        echo $antes . get_the_title() . $depois;
      }

    } elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ) {
      $post_type = get_post_type_object(get_post_type());
      echo $antes . $post_type->labels->singular_name . $depois;

    } elseif ( is_attachment() ) {
      $parent = get_post($post->post_parent);
      $cat = get_the_category($parent->ID); $cat = $cat[0];
      echo get_category_parents($cat, TRUE, ' ' . $separador . ' ');
      echo '<a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a> ' . $separador . ' ';
      echo $antes . get_the_title() . $depois;

    } elseif ( is_page() && !$post->post_parent ) {
      echo $antes . get_the_title() . $depois;

    } elseif ( is_page() && $post->post_parent ) {
      $parent_id  = $post->post_parent;
      $breadcrumbs = array();
      while ($parent_id) {
        $page = get_page($parent_id);
        $breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>';
        $parent_id  = $page->post_parent;
      }
      $breadcrumbs = array_reverse($breadcrumbs);
      foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $separador . ' ';
      echo $antes . get_the_title() . $depois;

    } elseif ( is_search() ) {
      echo $antes . 'Pesquisa pelo termo "' . get_search_query() . '"' . $depois;

    } elseif ( is_tag() ) {
      echo $antes . 'Artigos com a etiqueta "' . single_tag_title('', false) . '"' . $depois;

    } elseif ( is_author() ) {
       global $author;
      $userdata = get_userdata($author);
      echo $antes . 'Artigos publicados por ' . $userdata->display_name . $depois;

    } elseif ( is_404() ) {
      echo $antes . 'Página não encontrada!' . $depois;
    }

    if ( get_query_var('paged') ) {
      if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
      echo __('Page') . ' ' . get_query_var('paged');
      if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
    }

    echo '</div>';

  }
}

Para utilizar os breadcrumbs, cole o seguinte código onde quer que eles apareçam:

<?php echo breadcrumb(); ?>

 

3. Liste todos os autores do site

Se você não for o único autor do seu site, provavelmente haverá um dia em que terá que usar este código. Para o fazer, basta colar o seguinte código onde desejar que ele apareça:

<?php
$args = array(
 'role' =&gt; 'Author'
);
// The Query
$user_query = new WP_User_Query( $args );
// User Loop
if ( ! empty( $user_query-&gt;results ) ) {
 foreach ( $user_query-&gt;results as $user ) {
 echo get_avatar($user-&gt;ID);
 echo '&lt;p&gt;&lt;a href="'.home_url().'/author/'.$user-&gt;user_nicename.'"&gt;' . $user-&gt;display_name . '&lt;/a&gt;&lt;/p&gt;';
 $description = get_user_meta($user-&gt;ID, 'description', true);
 echo "&lt;p&gt;Bio: $description&lt;/p&gt;";
 }
} else {
 echo 'No users found.';
}
; ?>

4. Desligue as atualizações automáticas do WordPress

Apesar de ser uma ótima ferramenta, pode haver quem não queira que as atualizações automáticas do WordPress estejam ativas, quer seja por segurança ou por outras razões. Se assim quiser, basta colar o seguinte código no seu wp-config.php e o seu WordPress não voltará a atualizar sozinho.

define( 'WP_AUTO_UPDATE_CORE', false );

 

5. Tornar a imagem de destaque obrigatória

Se você é daqueles que acha que todos os artigos devem ter uma imagem de destaque, então este código é para si! Quando colar este código no seu ficheiro functions.php, sempre que tentar publicar o seu artigo sem uma imagem de destaque definida irá aparecer a mensagem ‘A imagem de destaque é obrigatória. Se não selecionar uma imagem de destaque o seu artigo ficará guardado mas não será publicado’.

&nbsp;add_action('save_post', 'eb_check_thumbnail');
add_action('admin_notices', 'eb_thumbnail_error');
function eb_check_thumbnail($post_id) {
 // change to any custom post type
 if(get_post_type($post_id) != 'post')
 return;
 if ( !has_post_thumbnail( $post_id ) ) {
 // set a transient to show the users an admin message
 set_transient( "has_post_thumbnail", "no" );
 // unhook this function so it doesn't loop infinitely
 remove_action('save_post', 'eb_check_thumbnail');
 // update the post set it to draft
 wp_update_post(array('ID' =&gt; $post_id, 'post_status' =&gt; 'draft'));
 add_action('save_post', 'eb_check_thumbnail');
 } else {
 delete_transient( "has_post_thumbnail" );
 }
}
function eb_thumbnail_error()
{
 // check if the transient is set, and display the error message
 if ( get_transient( "has_post_thumbnail" ) == "no" ) {
 echo "&lt;div id='message' class='error'&gt;&lt;p&gt;&lt;strong&gt;A imagem de destaque é obrigatória. Se não selecionar uma imagem de destaque o seu artigo ficará guardado mas não será publicado.&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;";
 delete_transient( "has_post_thumbnail" );
 }
}

Até já!