Quando eu fiz o vídeo e o post com 4 dicas rápidas de programação no WP no ano passado, imaginei que a gente teria uma continuação. O Pierre Saïkali fez uma série de tweets compartilhando várias outras dicas. Conversei então com ele (curiosidade: ele também fala português), que aceitou que eu trouxesse isso para cá. Não se esqueçam de segui-lo para não perder nenhuma dica!
Dica 1: wp_list_filter
Essa função ajuda a filtrar um array baseado em condições no formato chave => valor
:
$animais = [
[ 'nome' => 'crocodilo', 'voa' => false, 'classe' => 'réptil' ],
[ 'nome' => 'cachorro', 'voa' => false, 'classe' => 'mamífero' ],
[ 'nome' => 'gato', 'voa' => false, 'classe' => 'mamífero' ],
[ 'nome' => 'falcão', 'voa' => true, 'classe' => 'ave' ],
[ 'nome' => 'morcego', 'voa' => true, 'classe' => 'mamífero' ],
];
wp_list_filter( $animais, [ 'classe' => 'mamífero' ] );
// [
// [ 'nome' => 'cachorro', ... ]
// [ 'nome' => 'gato', ... ]
// [ 'nome' => 'morcego', ... ]
// ]
wp_list_filter( $animais, [ 'classe' => 'mamífero', 'voa' => true ] );
// [
// [ 'nome' => 'morcego', ... ]
// ]
wp_list_filter( $animais, [ 'classe' => 'mamífero', 'voa' => true ], 'OR' );
// [
// [ 'nome' => 'cachorro', ... ]
// [ 'nome' => 'gato', ... ]
// [ 'nome' => 'falcão', ... ]
// [ 'nome' => 'morcego', ... ]
// ]
Dica 2: wp_sprintf
Esta função é uma implementação com filtros da função nativa sprintf(). Além de poder criar novos marcadores com o filtro wp_sprintf, você também pode usar o marcador %l
para gerar listas separadas por vírgulas com um e no fim. Por exemplo:
echo wp_sprintf( 'Lista de animais: %l.', [ 'crocodilo', 'cachorro', 'gato', 'falcão', 'morcego' ] );
vai gerar a seguinte string:
Lista de animais: crocodilo, cachorro, gato, falcão e morcego.
Dica 3: wp_list_sort
Acho que já deu para perceber que eu gosto demais dessas funções utilitárias para arrays, não é? Esta função ajuda a ordenar um array multidimensional baseado em ou um mais índices específicos. Atenção para o quarto parâmetro, que determina se o array de resultado manterá ou não os índices.
$animais = [
'crocodilo' => [ 'nome' => 'crocodilo', 'voa' => false, 'classe' => 'réptil' ],
'cachorro' => [ 'nome' => 'cachorro', 'voa' => false, 'classe' => 'mamífero' ],
'gato' => [ 'nome' => 'gato', 'voa' => false, 'classe' => 'mamífero' ],
'falcão' => [ 'nome' => 'falcão', 'voa' => true, 'classe' => 'ave' ],
'morcego' => [ 'nome' => 'morcego', 'voa' => true, 'classe' => 'mamífero' ],
];
wp_list_sort( $animais, 'classe' );
// [
// 0 => [ 'nome' => 'falcão', ... ]
// 1 => [ 'nome' => 'gato', ... ]
// 2 => [ 'nome' => 'cachorro', ... ]
// 3 => [ 'nome' => 'morcego', ... ]
// 4 => [ 'nome' => 'crocodilo', ... ]
// ]
wp_list_sort( $animais, 'nome', 'DESC' );
// [
// 0 => [ 'nome' => 'morcego', ... ]
// 1 => [ 'nome' => 'gato', ... ]
// 2 => [ 'nome' => 'falcão', ... ]
// 3 => [ 'nome' => 'crocodilo', ... ]
// 4 => [ 'nome' => 'cachorro', ... ]
// ]
wp_list_sort( $animais, 'nome', 'ASC', true );
// [
// 'cachorro' => [ 'nome' => 'cachorro', ... ]
// 'crocodilo' => [ 'nome' => 'crocodilo', ... ]
// 'falcão' => [ 'nome' => 'falcão', ... ]
// 'gato' => [ 'nome' => 'gato', ... ]
// 'morcego' => [ 'nome' => 'morcego', ... ]
// ]
Dica 4: make_clickable
Esta função transforma todos os endereços e e-mails de uma string em links.
$texto = 'Exemplo de texto: você está no https://felipeelia.com/br e o seu e-mail tem o formato [email protected]';
echo make_clickable( $texto );
// Exemplo de texto: você está no <a href="https://felipeelia.com/br" rel="nofollow">https://felipeelia.com/br</a> e o seu e-mail tem o formato <a href="mailto:[email protected]">[email protected]</a>
Essas foram só algumas das muitas dicas que o Pierre já publicou. Se você me segue no Twitter já viu várias delas por lá. Se gostou não se esqueça de compartilhar com os seus amigos, de repente a gente ainda faz uma parte três!
Obrigado por compartilhar essas dicas!
Gostaria de lhe perguntar se você já usou algum “mvc” para criação de plugins, como o “wp-mvc” que gera o scaffold do plugin ou você usa outro?
Tenho muito interesse em criar componentes/plugins para o WP. Tenho receio de usar alguns disponibilizados na comunidade, pois sempre há propagandas, algum cliente pode não gostar. Ou mesmo atender alguma demanda de algum cliente dentro do painel de administração do WP.
Abraços!
Oi José! Já usei o wp-mvc sim, inclusive até mandei uns PR para eles na época. O fato dele seguir uma ideia diferente do WordPress em si acabou gerando uma série de problemas, mas no geral foi legal mexer com ele. Hoje em dia eu recomendo o BerlinDB (https://github.com/berlindb/core) como a camada entre tabelas personalizadas e o WP. Tem mais sobre ele nesse vídeo (em inglês): https://wordpress.tv/2019/08/28/john-jacoby-advanced-database-management-for-plugins/
Sobre o lance de ter propaganda ou não, infelizmente é o “preço” a se pagar. Se o cliente quiser aumentar o orçamento para uma solução completamente personalizada é uma coisa, senão é melhor usar o que já está pronto adaptando conforme o necessário. Espero que você use esse seu interesse em criar componentes e plugins para o WP sim, a gente ainda tem bastante mercado disso a ser explorado.
Abraços!
Obrigado Felipe por suas dicas!
Vou experimentar o BerlinDB!
Abraços!