web-dev-qa-db-fra.com

Suppression des codes courts du thème enfant

J'essaie de supprimer les codes courts d'un thème enfant. Dans mon fichier functions.php (pour le thème enfant), j'ai mis:

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

Où entry-Twitter-link est un shortcode créé dans le parent. Cependant, l'entrée apparaît toujours sur mes messages. Des idées sur ce qui ne va pas?

3
Teknophilia

Essayez ceci. Supprimez le shortcode déjà ajouté, puis ajoutez le nouveau shortcode sur le hook d'initialisation.

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 '';
}
12
Joshua Abenazer

Merci à la réponse de Josué, et c'est en effet sauver des vies. :)

BTW, je peux proposer une méthode légèrement différente. Supposons que vous ayez créé un plugin et que vous publiiez maintenant sa version pro. Ainsi, vous avez le contrôle total sur les deux plugins. Vous pouvez ainsi suivre les étapes suivantes:

Plugin actuel:

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' );

Dans cette méthode, le nom de la fonction doit rester exactement identique.

Vous pouvez également faire la même chose dans les thèmes Parent et Enfant.

Mais encore une fois, la réponse de Josué était excellente.

0
Mayeenul Islam