• Pular para navegação primária
  • Skip to main content
  • Home
  • Sobre/About
  • Projetos
  • Blog

Celso Bessa (sɛwsʊ bɛ:sa)

Prefiro construir pontes a muros

WordPress

Migrando do Yoast SEO para SEOPress Pro – Plugins WordPress

24 julho, 2018 por Celso Bessa

Depois de 10 anos usando o Yoast SEO, o plugin mais conhecido para SEO (Search Engine Optimization ou Otimização para Buscadores), no ano passado passei a usar a versão gratuita do SEOPress aqui no site pessoal e em 2 projetos pessoais.

Gostei tanto que decidi usar a versão pró em sites de clientes do Superlumina», do Japu Sites, da WoWPerations e da 2Aces.

SEOPress é poderoso e fácil de usar

O plugin é muito poderoso, fácil é a versão pró tem uma ótima relação custo X benefício.

Tela Painel do plugin SEOPress apresentando opções básicas facilmente identificações em botões e textos claros e concisos
O painel do SEOPress é limpo e tudo muito fácil de configurar

SEOPress – Veredito

Vale a pena. Saiba mais em https://bit.ly/SeoPressCB01

Arquivado em: tecnologia Marcados com as tags: Otimização para buscadores, Search Engine Optimization, SEO, SEOPress, WordPress, WP

É tempo de Gutenberg – 3.o Encontro WordPress Tiradentes

1 julho, 2018 por Celso Bessa

O 3.o encontro da Comunidade WordPress de Tiradentes e Região das Vertentes já tem data e tema definidos. O encontro acontecerá no dia 28/07, em local ainda a ser definido, e vai se dedicar ao projeto Gutenberg, novo editor de conteúdo do WordPress.

O encontro terá demonstração o novo editor para usuários, tira-dúvidas e também vou fazer uma palestra/oficina para mostrar para desenvolvedores como o novo editor impacta na criação de uso de temas e plugins, usando como exemplo a transformação do grid de conteúdos do Superlumina», originalmente um shortcode, em um bloco Gutenberg.

Site com grid de 12 imagens (3x4) diversas
Grid de imagens do fotógrafo Feco Hamburguer, criado com o bloco Gutenberg do plugin Superlumina Grid.
Textos, imagens e outros elementos no editor Gutenberg - do WordPress
Uau, um lance meio “inception”: este post sendo editado no novo editor do WordPress

Para garantir sua vaga e saber mais sobre a programação, visite a página do evento no Meetup: https://www.meetup.com/Tiradentes-WordPress-Meetup/events/252334990/


#3.o Encontro WordPress Tiradentes – Edição Gutenberg

Saturday, Jul 28, 2018, 2:00 PM

No location yet.

1 Membros Attending

O WordPress passará por mudanças radicais em breve e dia 28/07 vamos fazer um encontro totalmente dedicado a explorar estas mudanças, trazidas pelo projeto Gutenberg, que reinventa o editor de conteúdo do WP. O evento é gratuito e para participar não precisa ser desenvolvedor ou profissional WordPress. Designers, editores de sites, pequenos e médio…

Check out this Meetup →

Arquivado em: tecnologia Marcados com as tags: Campo das Vertentes, Comunidade, Gutenberg, Meetup, Meetup WordPress, Tiradentes, WordPress

26/05: Encontro Aniversário 15 anos WordPress em Tiradentes (meetup)

21 maio, 2018 por Celso Bessa

Dia 26 de Maio é aniversário de 15 anos de WordPress e vamos celebrar a data no 2.o Encontro WordPress em Tiradentes. É a segunda edição do meetup oficial de usuários e profissionais WordPress da região do Campo das Vertentes, que além de Tiradentes conta com Barbacena, Barroso, Cel. Xavier Chaves, Lavras, Prados, Rio Pomba, Ritápolis, São João Del Rei, Tiradentes, Vitoriano Veloso.

Para participar, não precisa ser desenvolvedor ou profissional WordPress: designers, editores de sites, pequenos e médios empresários com sites feitos em WordPress são bem-vindos.

Programação

  • 14h00 às 14h15 – Boas Vindas + O que é o Meetup
  • 14h15 às 14h30 – Participantes se apresentam
  • 14h30 às 15h00 – Palestra 1: criando o seu primeiro plugin (Celso Bessa)
  • 15h00 às 15h30 – Palestra 2: Dicas para Conteúdo
  • 15h30 às 16h00 – Flash Talks, tira-dúvidas, troca de idéias
  • 16h15 às 18h00 – Pic-Nic e Networking

Para garantir a vaga, acesse a página oficial do encontro em https://bit.ly/WP15TiradentesCB

Bexigas (balões) e adesivos customizados WordPress 15 Anniversary
Encontro Aniversário 15 anos WordPress em Tiradentes (meetup)

Arquivado em: blog Marcados com as tags: Campo das Vertentes, Meetup, Meetup WordPress, Minas Gerais, tecnologia, Tiradentes, WordPress, WordPress 15 anos, WP15

WordPress: como usar shortcode em campos customizados (do_shortcode e filtro the_content)

15 maio, 2018 por Celso Bessa

Shortcodes são códigos especiais usados em conteúdos no WordPress que, quando publicados na parte pública do site, se transformam em conteúdos ou funcionalidades especiais. Por exemplo, um shortcode [button color=”blue”] pode vir a se transformar ou como os grids no Superlumina», que são criados com códigos como [sl_grid columns=”3″].

Mas em diversas situações os usuários tentam usar estes códigos em locais que normalmente não permitiriam estes códigos. E ao invés de aparecer o conteúdo transformado (i.e. o botão ou o grid dos exemplos acima) e mostra o código em si.

Hoje, por exemplo, vi um caso de um site onde a descrição de uma seção/categoria (arquivo archive.php na hierarquia de templates do WordPress) deveria contar também com uma imagem e sua legenda. E ao invés da legenda, aparecia o shortcode para legenda.

Em casos como estes, geralmente é possível usar 2 soluções: a função do_shortcode ou o filtro the_content.

função do_shortcode

do_shortcode( $content, false );

do_shortcode( $content, false );

Esta função recebe um conteúdo em texto (parâmetro $content), verifica e executa todos os shortcodes nele e retorna o conteúdo filtrado. Se o segundo parâmetro for false, ignora shortcodes dentro elementos HTML.

Filtro the_content

apply_filters('the_content', $content);

apply_filters('the_content', $content);

Esta função também recebe um conteúdo em texto (parâmetro $content), e executa todo e qualquer filtro que esteja atrelados a ele, incluindo shortcodes e QUALQUER função que temas e plugins tenham configurado para rodar no the_content.

Particularmente, prefiro usar o do_shortcode quando só quero executar shortcodes. Veja alguns exemplos:

Pegar o conteúdo de um campo customizado (custom field) e executar shortcodes:

do_shortcode( get_post_meta($post_id, 'nome_do_campo', true), false );

do_shortcode( get_post_meta($post_id, 'nome_do_campo', true), false );

Usar shortcode na descrição de uma categoria e executá-los na área pública (front-end)

do_shortcode( term_description( $term_id, $taxonomy ), false );

do_shortcode( term_description( $term_id, $taxonomy ), false );

Neste caso, também pode usar get_term_meta, que funciona de forma similar à get_post_meta

do_shortcode( get_term_meta($term_id, 'nome_do_campo', true), false );

do_shortcode( get_term_meta($term_id, 'nome_do_campo', true), false );

Referências na documentação do WordPress, em inglês:

  • do_shortcode
  • the_content
  • get_post_meta
  • term_description
  • get_term_meta

Estes exemplos também estão disponíveis no Github. Espero ter ajudado

Arquivado em: tecnologia Marcados com as tags: desenvolvimento, do_shortocode, filtros, hooks, programação, shortcodes, the_content, WordPress

WP Compress – novo serviço de otimização de imagens para WordPress

2 janeiro, 2018 por Celso Bessa

Bastante curioso sobre este novo serviço de otimização de imagens na nuvem para WordPress, o WP Compress. Alguém já usou?

http://bit.ly/WPCompress2A

Arquivado em: tecnologia Marcados com as tags: imagens, otimização, otimização de imagens, otimização de performance, web performance optimization, WordPress, WP, WP Compress

Adding a noscript element to WordPress scripts using the script_loader_tag filter

3 outubro, 2017 por Celso Bessa

A good practice for developing websites and webapps is to give alternatives for features that depend on Javascript. Something known as progressive enhancement.

[Versão em Português? Clique aqui.]

Ideally, you start from the basic experience without Javascript and progressivelly enhances the experience with new Javascript features. At least, you should give some kind of warning or alternative content to the user (or search engines) if you can’t provide the same experience.

One way of doing that is by using noscript elements with the description, the warning or an alternative feature. Say, for example, an static image instead of some kind of interactive graphic.

Unfortunately, so far, WordPress doesn’t have a native specific way to add noscript elements to any Javascript enqueued with the native wp_register_script/wp_enqueue_script functionsw

The good news is that you can solve that by using a WordPress filter. Specifically, by using the script_loader_tag, as you can see below.

/**
 * @summary        filters an enqueued script tag and adds a noscript element after it
 * 
 * @description    filters an enqueued script tag (identified by the $handle variable) and
 *                 adds a noscript element after it. If there is also an inline script enqueued
 *                 after $handled, adds the noscript element after it.
 * 
 * @access    public
 * @param     string    $tag       The tag string sent by `script_loader_tag` filter on WP_Scripts::do_item
 * @param     string    $handle    The script handle as sent by `script_loader_tag` filter on WP_Scripts::do_item
 * @param     string    $src       The script src as sent by `script_loader_tag` filter on WP_Scripts::do_item
 * @return    string    $tag       The filter $tag variable with the noscript element
 */
function add_noscript_filter($tag, $handle, $src){
    // as this filter will run for every enqueued script
    // we need to check if the handle is equals the script
    // we want to filter. If yes, than adds the noscript element
    if ( 'script-handle' === $handle ){
        $noscript = '<noscript>';
        // you could get the inner content from other function
        $noscript .= '
 
this site demands javascript
 
';
        $noscript .= '</noscript>'; $tag = $tag . $noscript; } return $tag; } // adds the add_noscript_filter function to the script_loader_tag filters // it must use 3 as the last parameter to make $tag, $handle, $src available // to the filter function add_filter('script_loader_tag', 'add_noscript_filter', 10, 3);

/** * @summary filters an enqueued script tag and adds a noscript element after it * * @description filters an enqueued script tag (identified by the $handle variable) and * adds a noscript element after it. If there is also an inline script enqueued * after $handled, adds the noscript element after it. * * @access public * @param string $tag The tag string sent by `script_loader_tag` filter on WP_Scripts::do_item * @param string $handle The script handle as sent by `script_loader_tag` filter on WP_Scripts::do_item * @param string $src The script src as sent by `script_loader_tag` filter on WP_Scripts::do_item * @return string $tag The filter $tag variable with the noscript element */ function add_noscript_filter($tag, $handle, $src){ // as this filter will run for every enqueued script // we need to check if the handle is equals the script // we want to filter. If yes, than adds the noscript element if ( 'script-handle' === $handle ){ $noscript = '<noscript>'; // you could get the inner content from other function $noscript .= ' this site demands javascript '; $noscript .= '</noscript>'; $tag = $tag . $noscript; } return $tag; } // adds the add_noscript_filter function to the script_loader_tag filters // it must use 3 as the last parameter to make $tag, $handle, $src available // to the filter function add_filter('script_loader_tag', 'add_noscript_filter', 10, 3);

Enjoy! This function is also available on Github.

Arquivado em: tecnologia Marcados com as tags: acessibilidade, desenvolvimento, development, filters, filtros, github, HTML, noscript, PHP, progressive enhancement, script_loader_tag, WordPress

  • Go to page 1
  • Go to page 2
  • Go to page 3
  • Interim pages omitted …
  • Go to page 5
  • Go to Next Page »

Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (exceto fotografias com produto de terceiros ou pessoas)
Otimizado pela WoWPerations e hospedado na Digital Ocean
(Assinando Digital Ocean através deste link do programa indicação, você ganha crédito de 100 dólares para serem utilizados em até 60 dias, e eu ganho uma pequena comissão)