Arquivos grandes: como lidar com eles?

Se seu blog tem três anos ou mais, conta com um problema na sidebar: o tamanho dos arquivos. É praxe dividir os arquivos por mês, logo, em três anos de blog, e considerando que pelo menos um texto foi publicado por mês, no box dos arquivos há 36 links!

Há dois problemas em ter tantos links no box Arquivos. O primeiro é que a sidebar fica extensa, tirando o foco do que vier abaixo dos arquivos, e/ou deixando-a muito maior que a coluna de posts. O segundo, e mais grave, é que tanto link assim vai contra uma das diretrizes do Google para webmaster, que diz que, numa página, o recomendado é ter, no máximo, 100 links.

Existem duas formas de contornar esse problema, as quais explicarei abaixo. A primeira é criar um menu drop down, o que economiza muito espaço, e é bem discreto. A outra, é listar os arquivos por ano, ao invés do tradicional, que é fazê-lo por mês. Mas não se trata de uma mera listagem por ano… No método que será ensinado, ao clicar n’algum ano, os meses deste se expandem. Vamos lá?

Arquivos como menu drop down

Arquivos como menu drop down.

Arquivos como menu drop down.

Para conferir como fica o menu drop down na prática, veja a sidebar do WinAjuda (ou a imagem ao lado). Como se vê, o resultado é bem satisfatório, e o que é melhor: independe de plugin – embora, salvo engano, existam alguns com essa fianlidade.

Fazer isso em seu blog é muito fácil. Simplesmente copie e cole o trecho abaixo no arquivo sidebar.php, onde achar melhor:

<li><h2 class="titulos">Arquivos e Categorias</h2>
<ul>
<li><select name="archive-dropdown" onChange='document.location.href=this.options[this.selectedIndex].value;'>
<option value=""><?php echo attribute_escape(__('Escolha o mês')); ?></option>
<?php wp_get_archives('type=monthly&amp;amp;amp;format=option&amp;amp;amp;show_post_count=1'); ?> </select></li>
</ul>
</li>

Salve as alterações, e pronto!

Arquivos divididos por ano

O código para exibir arquivos é o seguinte:

<?php wp_get_archives('type=monthly'); ?>

Se seu intuito é simplesmente listar os arquivos por ano, e nada mais, substitua o termo monthly, no código acima, por yearly. Mas como isso é ficar no arroz com feijão, vamos além.

O código abaixo, além de listar os arquivos por ano, traz um plus interessante. Nele, quando o leitor clica num dos anos, a página correspondente é aberta, e no menu, os meses aparecem. Em meu blog pessoal é possível ver o sistema em funcionamento – ou, para quem preferir, na imagem abaixo:

Arquivos por ano.

Arquivos por ano.

Sem mais delongas, o código, extraído deste tópico do fórum oficial, é o seguinte:

<ul><li><h2>Arquivos</h2>
<ul>
<?php
global $month, $year; // scope WP global variables for later use
/* $arc_years => archive years query */
$arc_years = $wpdb->get_col("SELECT DISTINCT YEAR(post_date) FROM $wpdb->posts WHERE post_status = 'publish' ORDER BY post_date DESC");
foreach($arc_years as $arc_year) : // foreach loop for archive years
?>
<?php if($year != $arc_year) : // if current archive year does not equal $arc_year ?>
<li><a href="<?php echo get_year_link($arc_year); ?>"><?php echo $arc_year; ?></a></li>
<?php else : // current archive year *does* equal $arc_year ?>
<li><a href="<?php echo get_year_link($arc_year); ?>"><?php echo $arc_year; ?></a></li>
<li>
<ul>
<?php
/* $arc_months => archive months query for current archive year */
$arc_months = $wpdb->get_col("SELECT DISTINCT MONTH(post_date) FROM $wpdb->posts WHERE YEAR(post_date) = '$arc_year' AND post_status = 'publish' ORDER BY post_date");
foreach($arc_months as $arc_month): // foreach loop for archive months of current archive year
?>
<li><a href="<?php echo get_month_link($arc_year, $arc_month); ?> "><?php echo $month[zeroise($arc_month, 2)]; ?></a></li>
<?php endforeach; // end foreach loop for archive months ?>
</ul>
</li>
<?php endif; // end if/else on archive $year/$arc_year ?>
<?php endforeach; // end foreach loop for archive years ?>
</ul>
</li></ul>

A única coisa que falta nele é um toque de AJAX, de modo que a abertura dos meses seja on the fly, sem que a página inteira precise ser recarregada. Algum programador-leitor disposto a fazer essa melhoria?

Em suma, é isso. Espero que tais dicas sejam úteis, e até a próxima!

6 thoughts on “Arquivos grandes: como lidar com eles?

  1. Sim, existe o limite de 100 links, só que Matt Cutts explicou melhor sobre isso:

    “The reason for the 100 links per page guideline is because we used to crawl only about the first 101 kilobytes of a page. If somebody had a lot more than a hundred links, then it was a little more likely that after we truncated the page at a 100 kilobytes, that page would get truncated and some of the links would not be followed or would not be counted. Nowadays, I forget exactly how much we crawl and index and save, but I think it is at least, we are willing to save half a megabyte from each page. So, if you look at the guidelines, we have two sets of guidelines on one page. We have: quality guidelines which are essentially spam and how to avoid spam; and we have technical guidelines. The technical guidelines are more like best practices. So, the 100 links is more like a “best practice” suggestion, because if you keep it under 100, you are guaranteed you are never get truncated.”

    Então, se a página tem menos de 100 kb de HTML, não tem tanto problema ela ter mais de 100 links. No caso do meu blog ela não tem nem metade dos 100 kb, e achei bom deixar links para todas as categorias e arquivos na sidebar para melhorar a indexação do site.

    Se bem que tendo o sitemap.xml, a indexação já é feita muito bem em 90% dos casos.

    Abs

  2. @ Noticias Automotivas

    É, de fato. Mas neste mesmo texto, é dito que o limite de 100 links por página é tido como uma “boa prática”. E… bom, vindo do Google, o que eles disserem que é bom, eu faço :-) .

    Mas obrigado pelo adendo. Muito interessante ver que algumas convenções estão sendo quebradas, graças aos avanços dos buscadores.

    []‘s!

    PS: seu blog é muito bom, sempre dou uma passada lá para conferir os lançamentos de carros.

  3. Interessante, vale lembrar que o blogger no seu padrão utiliza uma maneira semelhante e já com AJAX, onde é possível recolher ou expandir o arquivo mensal ou anual por exemplo, se me sobrar um tempo coisa que está difícil utlimante vou fazer algo com AJAX para facilitar a navegação.

    Sobre o menu drop down com a tag select, existe a opção default do WordPress nos widgets, é só marcar a opção para exibir o arquivo com menu drop dowm, para isso o theme tem que suportar widgets, mas hoje em dia poucos não tem esse suporte.

    Valeu, um abraço!

  4. Pingback: Posts Estrelados da Semana 51 - Bruno Godoi

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>