Como carregar scripts no WordPress apenas se uma postagem tiver um código de acesso
Como de costume, é uma boa prática carregar seus estilos e scripts para seus temas do WordPress somente quando necessário, para manter o site carregando rapidamente e evitar erros de JS.
Para fazer isso, existem vários condicionais embutidos para verificar se uma postagem está usando um modelo específico, se é a página inicial, página de pesquisa, página de administração etc., para que você possa carregar seus estilos e scripts apenas nas páginas que os exigem, no entanto, não há nenhuma maneira interna de testar se uma postagem tem um código de acesso no conteúdo.
Muitas pessoas simplesmente carregam todo o seu javascript e CSS para seus códigos de acesso em seu cabeçalho usando a função wp_enqueue, mas esse não é realmente o melhor método. Quando você está desenvolvendo um site, você deve sempre buscar velocidade/desempenho.
Hoje recebi uma função WordPress realmente útil do meu amigo PippinsPlugins (o melhor site da web para plugins WordPress em tutoriais de plugins) que permite verificar se um determinado código de acesso existe em um post e se ele carrega seus scripts.
Função de verificação de código de acesso
Basta copiar e editar (alterar YOUR_SHORTCODE para o nome do shortcode que você deseja verificar) a função abaixo para testar suas postagens quanto à existência de um shortcode e carregar seus scripts/estilos quando necessário!
function check_for_shortcode($posts) {
if (vazio($posts))
return $posts;
// false porque temos que pesquisar primeiro nos posts
$found = false;
// pesquisa em cada post
foreach ($posts as $post) {
// verifica o conteúdo do post para o short code
if ( stripos($post->post_content, ‘[YOUR_SHORTCODE’) )
// encontramos um post com o código curto
$found = true;
// interrompe a
quebra de pesquisa;
}
if ($found){
// $url contém o caminho para a pasta do seu plugin
$url = plugin_dir_url( __FILE__ );
wp_enqueue_style( ‘my_login_Stylesheet’,$url.’plugin_styles.css’ );
}
return $posts;
}
// executa a verificação quando a função the_posts() é chamada
add_action(‘the_posts’, ‘check_for_shortcode’);