Blogroll é um dos itens mais usados na blogosfera desde a era old school. Quem não quer ter aquela listinha de blogs favoritos, né? Neste tutorial ensino como criar um blogroll de forma bem rapidex que dá para usar tanto em widget quanto numa página interna do WordPress através de um shortcode super simples.
1) Ativando os links na dashboard
Naturalmente o WordPress vem com o painel de links oculto na Dashboard, e não são todos os temas que possuem o filtro que habilita esta função no painel. O painel de links é este:

Área de links na Dashboard
Caso não tenha este item em seu menu da Dashboard, basta abrir o arquivo functions.php do seu tema e adicionar este filtro em seu código:
add_filter( 'pre_option_link_manager_enabled', '__return_true' );
Salve e verifique se habilitou esta área e mantenha o seu arquivo aberto para acrescentar os outros códigos abaixo.
2) Criando o shortcode
Para deixar a inserção de sua lista de links da forma mais prática possível sempre quando e onde desejar, a melhor forma pra conseguir isso é criando um shortcode. Shortcode não é nada mais, nada menos do que o resumo de um código maior e mais complexo. No WordPress é muito legal utilizar shortcodes pois facilita bastante para estes casos que precisamos usar alguma Template Tag do WordPress que é em PHP na área de posts e widgets, quando as mesmas por padrão não lê diretamente códigos de programação, apenas HTML. No nosso caso vamos fazer um shortcode que irá ocupar o lugar da tag wp_list_bookmarks()
do WordPress e todos os seus argumentos necessários em pouco espaço. Veja abaixo:
add_filter('widget_text','do_shortcode'); function mluv_shortcode_blogroll($atts, $content = null) { extract(shortcode_atts(array( "categoria" => '', "num" => '' ), $atts)); ob_start(); echo '<ul class="linksblogroll">'; echo wp_list_bookmarks('title_li=&categorize=0&category='.$categoria.'&limit='.$num.'&before=<li>&after=</li>&show_images=0&show_description=0&orderby=name'); echo '</ul>'; $output = ob_get_clean(); return $output; } add_shortcode('mlblogroll','mluv_shortcode_blogroll');
No código acima adicionei um filtro que permite que shortcodes sejam lidos nas widgets de texto padrão do WordPress e uma função, chamada mluv_shortcode_blogroll. Dentro desta função há duas variáveis chamada $categoria e $num, que serão aplicadas na tag wp_list_bookmarks()
(saiba mais sobre essa tag). A primeira variável define o número de ID da categoria de links que se cria lá na Dashboard. Com esta variável aplicada, você pode criar várias e várias listas de links para o seu blog e usa-las de forma separada em qualquer página e/ou widget, como lista de links de blogroll, créditos, parceiros etc. Já a segunda variável determinará a quantidade de links que serão mostrados. Sua utilização nas páginas, posts e widgets será assim:
[mlblogroll categoria="1" num="10"]
O código acima refere-se à lista de categorias de ID 1, mostrando 10 links. Caso você não faça nenhuma categoria no seu painel de links e não queira especificar a quantidade, basta utilizar apenas [mlblogroll]
para mostrar todos os links cadastrados.
O visual dos links (css)
No código acima, eu englobei os links dentro de listas, através de before=<li>
e after=</li>
. Esta lista recebe uma class chamada .linksblogroll. Fiz um código básico de duas colunas de links:
/**** links blogroll ** madlyluv.com ****/ ul.linksblogroll { margin-left: 0; padding: 0; list-style: none; } ul.linksblogroll li { width: 49%; display: inline-block; } /**** /fim links blogroll ****/
Você pode renomear a classe .linksblogroll para o nome que desejar e estilizar como você quiser no arquivo style.css. Só não pode esquecer de também substituir o nome da classe nova lá no seu shortcode, no arquivo functions.php.
Aplicando atributo nofollow (Opcional)
Alguns blogs não se sentem à vontade de deixar os links de blogroll com o atributo dofollow por questão de prioridades no SEO. O WordPress por padrão não adiciona este atributo, mas dá para se criar um filtro que substitua uma parte do código de todos os links cadastrados, permitindo acrescentarmos o atributo que desejamos. Caso você queira o atributo nofollow, abra o seu functions.php e insira o código abaixo logo após o código de shortcode.
function mluv_nofollow_blogroll( $html ) { $html = preg_replace( '/\s?rel=".*"/', '', $html ); $html = str_replace( '<a ', '<a rel="nofollow" ', $html ); return $html; } add_filter( 'wp_list_bookmarks', 'mluv_nofollow_blogroll' );
Em rel="nofollow"
você pode acrescentar outros atributos que desejar, como noopener e noreferrer (saiba o que são). É só separar os atributos por espaços!
Qualquer dúvida é só comentar abaixo e não se esqueça dos créditos! ;D