Removendo Shortcodes do tema filho

3

Estou tentando remover os códigos de acesso de um tema filho. No meu arquivo functions.php (para o tema filho), eu coloquei:

function my_remove_shortcode(){
    return '';
}
add_shortcode('entry-twitter-link', 'my_remove_shortcode');

Onde entry-twitter-link é um shortcode criado no pai. No entanto, a entrada ainda aparece nas minhas postagens. Idéias sobre o que há de errado?

    
por Teknophilia 10.12.2011 / 16:53

2 respostas

12

Tente isso. Remova o shortcode já adicionado e adicione o novo shortcode no gancho init.

function shortcode_cleaner() {
    remove_shortcode( 'entry-twitter-link' ); // Not exactly required
    add_shortcode( 'entry-twitter-link', 'my_remove_shortcode' );
}
add_action( 'init', 'shortcode_cleaner' );

function my_remove_shortcode(){
    return '';
}
    
por Joshua Abenazer 10.12.2011 / 17:23
0

Graças à resposta de Joshua, e isso realmente salva vidas. :)

BTW, posso propor um método ligeiramente diferente. Suponha que você tenha criado um plugin e agora você vai lançar sua versão pro - então você tem o controle total sobre ambos os plugins, então você pode seguir algo como isto:

Plugin real:

if( !function_exists('wpse36092_shortcode') {
   function wpse36092_shortcode() {
       echo 'This'; //existing content
   }
}
add_shortcode( 'wpse36092', 'wpse36092_shortcode' );

Plugin Pro:

function wpse36092_shortcode() {
       echo 'That'; //overwriting content
}
add_shortcode( 'wpse36092', 'wpse36092_shortcode' );

Neste método, o nome da função deve permanecer exatamente igual.

Você também pode fazer o mesmo no tema pai e no tema filho.

Mas, novamente, a resposta de Joshua foi ótima.

    
por Mayeenul Islam 17.11.2015 / 18:20