Assim como em todas as versões recentes do WordPress, tanto no canal como aqui no blog, vocês recebem dois conteúdos: um com as novidades para os usuários e outro para os desenvolvedores. A parte para os usuários saiu logo depois do lançamento do WP 5.5 e agora chegou a vez da parte para os devs!

Como sempre, a parte para os desenvolvedores é baseada no Field Guide, um post no blog do make que é lançado sempre que o WordPress recebe uma versão maior.

Padrões de bloco

Comentamos sobre os padrões de blocos na parte para usuários. Para criá-los é bem simples: basta chamar a função register_block_pattern(), passando o nome do padrão (com um namespace qualquer) e as propriedades de título, descrição, categoria e o conteúdo do padrão. O caminho mais fácil parece ser criar os blocos em um post, ir no Code Editor, copiar o conteúdo e colar. Não se esqueça de escapar as aspas duplas colocando uma \ na frente.

function my_plugin_register_block_patterns() {
    register_block_pattern(
        'my-plugin/my-awesome-pattern',
        array(
            'title'       => __( 'Two buttons', 'my-plugin' ),
            'description' => _x( 'Two horizontal buttons, the left button is filled in, and the right button is outlined.', 'Block pattern description', 'my-plugin' ),
            'categories'  => array( 'buttons' ),
            'content'     => "<!-- wp:buttons {\"align\":\"center\"} -->\n<div class=\"wp-block-buttons aligncenter\"><!-- wp:button {\"backgroundColor\":\"very-dark-gray\",\"borderRadius\":0} -->\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-background has-very-dark-gray-background-color no-border-radius\">" . esc_html__( 'Button One', 'my-plugin' ) . "</a></div>\n<!-- /wp:button -->\n\n<!-- wp:button {\"textColor\":\"very-dark-gray\",\"borderRadius\":0,\"className\":\"is-style-outline\"} -->\n<div class=\"wp-block-button is-style-outline\"><a class=\"wp-block-button__link has-text-color has-very-dark-gray-color no-border-radius\">" . esc_html__( 'Button Two', 'my-plugin' ) . "</a></div>\n<!-- /wp:button --></div>\n<!-- /wp:buttons -->",
        )
    );
}
add_action( 'init', 'my_plugin_register_block_patterns' );

O WordPress oferece alguns padrões de bloco nativamente. Se você quiser desabilitá-los (para, por exemplo, disponibilizar apenas alguns personalizados), você pode usar o seguinte código:

remove_theme_support( 'core-block-patterns' );

A dev note foi publicada neste endereço:

Função esc_xml()

Eu não sei se eu já falei sobre isso por aqui antes, mas o WordPress tem várias funções para “escapar” texto: esc_html(), esc_js(), esc_attr() são algumas delas. O WordPress 5.5 trouxe mais uma, a esc_xml().

Sitemap XML

Junto com a novidade dos sitemaps XML gerados no WordPress por padrão, veio também a possibilidade de personalizá-los. Na dev note os desenvolvedores explicam como criar e remover sitemaps, editá-los ou desabilitar tudo. Mais informações no post:

Argumentos em arquivos de template

Sobre essa eu já falei vinte vezes aqui no blog e no canal, mas é tão boa que não custa repetir. A partir do WordPress 5.5 você pode passar argumentos para os arquivos de template do WP. Se você, por exemplo, tem um arquivo só para exibir posts relacionados, mas quer variar a quantidade de posts exibidos sem criar um arquivo para cada situação, agora você pode usar algo como:

<?php
get_template_part( 
    'posts-relacionados', 
    null,
    array( 
        'quantidade_posts' => 5,
    )
);

No arquivo posts-relacionados.php, você pode pegar o parâmetro quantidade_posts com algo assim:

<?php
$args = wp_parse_args(
    $args,
    array(
        'quantidade_posts' => 3,
    )
);
?>

Quantidade de posts: <?php echo $args['quantidade_posts']; ?>

Se o código não passar o parâmetro, o valor padrão será 3. Mais informações na dev note:

Tipos de ambiente

Assim como o recurso de passar argumentos para arquivos de template, muitas pessoas tinham vários jeitos diferentes de configurar uma variável para identificar o ambiente atual: desenvolvimento, homologação ou produção, por exemplo. Na versão 5.5 ganhamos o jeito oficial de fazer isso, a função wp_get_environment_type().

Você pode usar uma variável de ambiente ou a constante WP_ENVIRONMENT_TYPE para identificar o ambiente atual:

define( 'WP_ENVIRONMENT_TYPE', 'staging' );

Se você definir esta constante como ‘development’, o WordPress definirá WP_DEBUG como true (se esta constante não estiver definida).

Mais informações na dev note:

Dashicons

A fonte de ícones Dashicons, presente no WordPress há mais de 7 anos, recebeu mais uma atualização e esta será a sua última. Para ver os últimos ícones adicionados, veja o post no blog do Make:

Correção no nome dos arquivos

Por último, mas não menos importante, finalmente o WordPress corrigiu um comportamento antigo: renomear os nomes de arquivos com acentuação.

Não é um problema muito comum para os ingleses e americanos, mas para quem fala português ou espanhol acontece com frequência: o site funciona bem em um servidor, você move tudo para outro e as imagens com acentuação no nome param de funcionar. Eu até já tinha feito um post aqui no blog explicando como corrigir isso, mas agora aquela solução não será mais necessária.

https://core.trac.wordpress.org/ticket/22363


Estas não são todas as novidades do WordPress 5.5 para os desenvolvedores. Veja o Field Guide e comente aqui o que mais agradou. Também não esqueça de assinar o canal e a newsletter aqui embaixo!