🔧 Criando um shortcode básico no WordPress
Um shortcode no WordPress nada mais é do que uma função PHP registrada com add_shortcode(), que pode ser usada dentro de páginas, posts ou até widgets. Vamos criar um exemplo simples que exibe uma mensagem:
// No functions.php ou em um plugin
function infotechjs_mensagem_simples() {
return 'Olá, este é meu primeiro shortcode!
';
}
add_shortcode('mensagem_simples', 'infotechjs_mensagem_simples');
Agora, basta usar [mensagem_simples]
no conteúdo de uma página e pronto!
🧩 Shortcode com conteúdo dinâmico via ACF
Vamos dar um passo além. Imagine que você tem um campo personalizado chamado mensagem_boas_vindas
criado com o ACF.
function infotechjs_mensagem_dinamica() {
$mensagem = get_field('mensagem_boas_vindas', 'option'); // ou outro post ID
if ( $mensagem ) {
return '' . esc_html($mensagem) . '
';
}
return '';
}
add_shortcode('mensagem_dinamica', 'infotechjs_mensagem_dinamica');
Esse shortcode [mensagem_dinamica]
vai puxar o conteúdo dinâmico do ACF, e já com esc_html()
para manter a segurança.
Na próxima seção: 🔁 Vamos evoluir para buscar conteúdo de outro site na rede Multisite usando switch_to_blog()
.
🌐 Shortcode que acessa conteúdo de outro site no Multisite
Imagine que você tem um campo personalizado no site principal (ID 1) com banners ou dados compartilhados. Podemos criar um shortcode para buscá-lo, mesmo que ele seja usado em outro site da rede.
💻 Exemplo prático:
function infotechjs_banner_global_shortcode() {
$output = '';
// ID do site principal onde os dados estão salvos
$blog_id_origem = 1;
// Página ou post onde o conteúdo está
$post_id = 7; // Substitua pelo ID real
// Troca temporariamente para o site principal
switch_to_blog($blog_id_origem);
// Obtém os campos ACF
$banner = get_field('banner_destacado', $post_id); // exemplo de campo
// Retorna ao site atual
restore_current_blog();
// Monta o HTML
if ( $banner ) {
$output .= '';
$output .= '
';
$output .= '';
}
return $output;
}
add_shortcode('banner_global', 'infotechjs_banner_global_shortcode');
🔖 Use o shortcode [banner_global]
onde quiser exibir o conteúdo do site principal.
🧠 Dica de performance
Evite usar switch_to_blog()
dentro de loops grandes. Se você tiver que exibir vários conteúdos de outros sites, prefira agrupar os dados em cache com transient
ou APIs personalizadas.