fbpx

Bem vindo ao
Blog da FULL.

Aprenda, crie e cresça seu negócio na internet.

Encontre conteúdos, dicas, tutoriais e novidades sobre as principais ferramentas Wordpress

Como evitar conflitos de código de acesso de tema e plug-in

Você está em:

Como evitar conflitos de código de acesso de tema e plug-in

Todos nós já passamos por isso: você compra um tema premium que é realmente ótimo e também compra um plugin incrível (um dos meus, por exemplo!), mas colocar o tema e o plugin juntos simplesmente não funciona. E daí? O plugin ou o tema está com bugs?

Na maioria das vezes, quando isso acontece, é quando você está usando códigos de acesso. Vamos imaginar que você acabou de comprar um plugin para lidar com “testemunhos”. Você lê com atenção a documentação e sabe que para exibir os depoimentos você precisa incluir o seguinte shortcode [testimonials] . Mas quando você faz isso, nada aparece.

A razão pela qual o shortcode não é substituído por depoimentos, é porque seu tema E o plugin definem exatamente o mesmo shortcode.

Como os arquivos de plugins são carregados antes dos arquivos de temas, eles são sobrescritos e não totalmente levados em consideração neste caso.

É por isso que eu queria mostrar um método simples para cancelar o registro do código de acesso do tema e substituí-lo pelo do plugin.

Etapa 1: criar um plug-in simples

Precisamos criar um plugin simples:

<?php

/*

Plugin Name: Avoid Shortcodes conflicts

Plugin URL: http://remicorson.com

Description: A little plugin to avoid conflicts bewteen shortcodes

Version: 1.0

Author: Remi Corson

Author URI: http://remicorson.com

Contributors: corsonr

Text Domain: rc_asc

Domain Path: languages

*/

Etapa 2: verifique se o código de acesso existe

Este e o passo mais importante. É onde você verifica a existência de um shortcode. O WordPress possui uma variável global “$shortcode_tags” que armazena a lista de todos os shortcodes registrados. Então, só precisamos passar por essa variável e verificar se o shortcode que estamos procurando faz parte dela.

/**

 * Check if a shortcode is already registered

 *

 * @since 1.0

 *

 * @param $shortcode string The shortcode slug to test

 *

 * @return void

 */

function rc_asc_shortcode_exists( $shortcode = false ) {

global $shortcode_tags;

//echo ‘<pre>’; var_dump($shortcode_tags); echo ‘</pre>’;

if ( ! $shortcode )

return false;

if ( array_key_exists( $shortcode, $shortcode_tags ) )

return true;

return false;

}

Esta é a função genérica que usaremos em uma função mais específica, incluindo o slug de código de acesso a ser procurado. Esta função retorna TRUE se o shortcode existir ou FALSE se não existir.

Etapa 3: remova o código de acesso e registre o novo

A próxima função está usando o rc_asc_shortcode_exists() que acabamos de criar. Ele simplesmente verifica a existência do shortcode, substitui-o se existir ou adiciona o shortcode se ainda não estiver registrado.

/**

 * Check if a shortcode is already registered and replace it

 *

 * @since 1.0

 *

 * @return void

 */

function rc_asc_replace_shortcode() {

$shortcode = ‘testimonials’;

if( rc_asc_shortcode_exists( $shortcode ) ) {

remove_shortcode( $shortcode );

add_shortcode( $shortcode, ‘my_testimonials_function’ );

} else {

add_shortcode( $shortcode, ‘my_testimonials_function’ );

}

}

Etapa 4: definir a nova função de código de acesso

Tudo o que você precisa fazer é definir o conteúdo da função “my_testimonials_shortcode()” e pronto!

/**

 * Creates the new shortcode

 *

 * @since 1.0

 *

 * @return void

 */

function my_testimonials_function() {

return ‘this replaces the previous shortcode!’;

}

Como você pode ver, o shortcode declarado anteriormente agora é substituído pelo shortcode correto.

Aprenda com a FULL.

Junte-se a mais de 50 mil pessoas que recebem em primeira mão as principais ferramentas e tecnologia para desenvolvimento web

Meu carrinho
🎁 Faltam R$300,00 para liberar o Cupom Secreto
Seu carrinho está vazio.

Parece que você não adicionou nada ao seu carrinho =(