Licínio Sousa

2 Dicas de optimização para WordPress

Código, Wordpress

Comments Closed


Share this post

Todos os scripts deverão ser adicionados ao ficheiro functions.php

1: Remover Versão das Query Strings dos JavaScript JS e ficheiros CSS

A primeira dica de optimização para melhorar o ranking de um site trata de resolver o problema de remover a versão dos scripts carregados pelo WordPress.

1
2
3
4
5
6
function _remove_script_version( $src ){
$parts = explode( '?', $src );
return $parts[0];
}
add_filter( 'script_loader_src', '_remove_script_version', 15, 1 );
add_filter( 'style_loader_src', '_remove_script_version', 15, 1 );

2: Defer Parsing de Javascript

As seguintes snippets tratam de carregar os ficheiros Javascript apenas depois do conteúdo ter finalizado de carregar.

1
2
3
4
5
6
function defer_parsing_of_js ( $url ) {
if ( FALSE === strpos( $url, '.js' ) ) return $url;
if ( strpos( $url, 'jquery.js' ) ) return $url;
return "$url.' async onload='myinit()";
}
add_filter( 'clean_url', 'defer_parsing_of_js', 11, 1 );

ou

1
2
3
4
5
6
function defer_parsing_of_js ( $url ) {
if ( FALSE === strpos( $url, '.js' ) ) return $url;
if ( strpos( $url, 'jquery.js' ) ) return $url;
return "$url' defer ";
}
add_filter( 'clean_url', 'defer_parsing_of_js', 11, 1 );

Read more

Adicionar um filtro de taxonomia ao Dashboard do WordPress

Graphic Design

Comments Closed


Share this post

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function pippin_add_taxonomy_filters() {
    global $typenow;
 
    // an array of all the taxonomyies you want to display. Use the taxonomy name or slug
    $taxonomies = array('faq_topics');
 
    // must set this to the post type you want the filter(s) displayed on
    if( $typenow == 'faqs' ){
 
        foreach ($taxonomies as $tax_slug) {
            $tax_obj = get_taxonomy($tax_slug);
            $tax_name = $tax_obj->labels->name;
            $terms = get_terms($tax_slug);
            if(count($terms) > 0) {
                echo "<select name='$tax_slug' id='$tax_slug' class='postform'>";
                echo "<option value=''>Show All $tax_name</option>";
                foreach ($terms as $term) {
                    echo '<option value='. $term->slug, $_GET[$tax_slug] == $term->slug ? ' selected="selected"' : '','>' . $term->name .' (' . $term->count .')</option>';
                }
                echo "</select>";
            }
        }
    }
}
add_action( 'restrict_manage_posts', 'pippin_add_taxonomy_filters' );

Read more

Como usar shortcodes num template WordPress

Wordpress

Comments Closed


Share this post

Shortcode é uma tag especial que introduzir num post como referência a um bloco de código que tenha uma acção específica.

Se alguma vez utilizou algum template comprado ou um plugin que adicione funções avançadas, a probabilidade de já ter utilizado um shortcode é grande.

O problema normalmente é quando se torna necessário, por motivos de facilidade para o cliente, por exemplo, adicionar as funções de um shortcode a um template.

Felizmente, o WordPress tem uma função muito fácil chamada do_shortcode () que permite adicionar shortcodes directamente no código do seu tema.

Basta adicionar o código como este:

1
<?php echo do_shortcode("[example_shortcode]"); ?>

Substituir example_shortcode pelo nome do seu shortcode e voilá!

Read more

Editar ou esconder menus de administração de utilizadores

Wordpress

Comments Closed


Share this post

Muitas vezes necessitei editar menus do Dashboard por forma a simplificá-lo.

Assim, um utilizador com direitos de administração com menos conhecimentos do que pode destruir, nunca pode causar danos permanentes.

Normalmente utilizava o white label cms ou o ag custom admin, no enatanto descobri recentemente uma solução menos versátil mas que faz aquilo a que se propôe.

O Admin Menu Editor edita e esconde items do menu do Dashboard.

A lógica é simples, no painel de gestão escondemos, trocamos a ordem e gravamos.

Em caso de algum erro, basta adicionar ?reset_admin_menu=1 ao url de administração e faremos um reset ao menu.

 

Read more

Reverter para a barra do Buddypress após upgrade

Código, Wordpress

Comments Closed


Share this post

Recentemente fiz upgrade para a última versão do Buddypress no meu site queratocone.org e reparei que o BuddyPress passou a usar a barra do WordPress, ora, como eu estou de férias e fiz skip num passo essencial, fiquei agarrado à bara do wordpress, sendo que a mesma não está costumizada como a do BuddyPress.

Foi necessário arranjar uma solução, assim, e após procurar um pouco online descobri o seguinte código, que reverte para a barra antiga.

1
2
// disable the WP Toolbar and revert back to the BuddyBar
add_filter( 'bp_use_wp_admin_bar', '__return_false' );

Basta adicioná-lo ao ficheiro bp-custom.php que deverá estar na raiz da vossa pasta de plugins.

Read more

Melhor plugin para um site multilingue em WordPress

Wordpress

Comments Closed


Share this post

WordPress Multilíngue Até há pouco tempo e de cada vez que um cliente me pedia uma solução multilingue para o seu site, a ferramenta que utilizava era, e sem pestanejar, o qtranslate, um plugin grátis e muito fácil de usar.

No entanto, este plugin tem alguns problemas, sendo o principal, a quantidade de lixo que deixa na base de dados, o que se torna muito preocupante quando, por exemplo, o cliente decide mudar de ideias e retirar o suporte multilingue ficando só com uma linguagem.

Limpar a base de dados depois da instalação do qtranslate, é uma dor de cabeça monumental, especialmente quando não se tem muita experiência com mySQL.

Assim, procurei uma alternativa e recentemente descobri o WPML.

Este plugin é mais que uma simples ferramenta de adição de conteúdo.

É uma estação de trabalho capaz de gerir toda e qualquer necessidade que tenha de tradução de conteúdos.

O WPML (sigla para WordPress Multi Language),l vem em dois sabores, o mais básico o WPML Multilingual Blog é mais parecido com o qTranslate e para a maior parte dos utilizadores é mais que suficiente, mas o verdadeiro poder vem com a versão avançada, o WPML Multilingual CMS.

Com este pacote, podemos traduzir inclusivé titulos de imagens, editar menus avançados, assim como traduzir todos e qualquer conteúdo gerido pelo template utilizado no site com o String Translation para além de criar relações e condições de apresentação de conteúdos como nenhum outro que conheça actualmente.

O WPML tem um preço, não é um plugin grátis e a curva de aprendizagem não é fácil para principiantes, mas vale cada tostão, seja pelo poder, seja pelas dores de cabeça que elimina na gestão e criação de conteúdos multilingue.

Cinco estrelas!

Read more

Remover os atributos de imagem de todas as imagens no wordpress

Código, Wordpress

Comments Closed


Share this post

Muitas vezes os meus clientes pedem para remover os atributos das imagens no wordpress (aquela caixinha amarela que aparece quando estamos com o rato por cima duma imagem).

Recentemente descobri a maneira mais rápida e eficiente, pelo menos até agora de o fazer.

Basta fazer “paste” do código abaixo para o ficheiro footer.php, imediatamente antes da tag < / body >

1
2
3
4
5
6
7
<script type="text/javascript">// <![CDATA[
/* The first line waits until the page has finished to load and is ready to manipulate */
$(document).ready(function(){
    /* remove the 'title' attribute of all <img /> tags */
    $("img").removeAttr("title");
});
// ]]></script>

Read more

Botão “Back” com memória

Código, Wordpress

No Comments


Share this post

Tenho trabalho muito com o wordpress e recentemente deparei-me com uma dificuldade. Precisei de construir um botão de regresso à página anterior sendo que teria de ser um botão com um link relativo.

Após uma busca na net descobri este simples bocado de código que passo a explicar.

1
2
3
<!--?php if ( in_category('5')) { $referer = $_SERVER['HTTP_REFERER'];<br ?--> $is_us = @strpos( $referer, 'OurDomainName'); if($is_us)
{ echo '<a href="' . $referer . '"><img src="arrow-back.png" alt="" /></a>'; }
else { echo '<a href="http://OurDomainName.com/"><img src="arrow-back.png" alt="" /></a>'; } } ?&gt;

A primeira linha verifica se estamos a correr o código para uma categoria específica, se for o caso, a variável “$referer” é igual ao URL de referência.

A segunda linha verifica se o domínio de referência é o nosso, isto porque não queremos que no caso do tráfego ser originário de outro site, que o botão reencaminhe para fora do site.

Se o nosso domínio estiver presente no domínio de referência, assumimos que o visitante veio do nosso site e na terceira linha colocamos o link no site.

Se o domínio não estiver no URL de referência, assumimos que o leitor veio de outro site, para prevenir que o nosso botão reenvie para o link externo, a quarta linha imprime o botão de voltar com link para a nossa homepage.

Se quisermos que o botão aparece em todas as categoris, apague desde a palavra “if” na primeira linha até e incluindo a chaveta na primeira linha. Depois apague uma das chavetas no fim da quarta linha.

Se preferirmos que o botão simplesmente não aparece se o link de referência for outro site, apagamos o código começando na palavra “else” na quarta linha até e incluíndo a primeira chaveta de fecho.

Read more