私は子供のテーマからショートコードを削除しようとしています。私のfunctions.phpファイル(子テーマ用)には、次のように書きました。
function my_remove_shortcode(){
return '';
}
add_shortcode('entry-Twitter-link', 'my_remove_shortcode');
Entry-Twitter-linkは、親で作成されたショートコードです。しかし、エントリはまだ私の投稿に表示されます。何が悪いのアイデア?
これを試してみてください。すでに追加されているショートコードを削除してから、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 '';
}
ジョシュアの答えに感謝します、そしてそれは本当に命を救うものです。 :)
ところで、私は少し異なる方法を提案することができます。あなたがプラグインを作成し、そして今プロバージョンをリリースしようとしていると仮定します - それであなたは両方のプラグインを完全にコントロールするので、あなたはこのような何かに従うことができます:
if( !function_exists('wpse36092_shortcode') {
function wpse36092_shortcode() {
echo 'This'; //existing content
}
}
add_shortcode( 'wpse36092', 'wpse36092_shortcode' );
function wpse36092_shortcode() {
echo 'That'; //overwriting content
}
add_shortcode( 'wpse36092', 'wpse36092_shortcode' );
このメソッドでは、関数の名前はまったく同じでなければなりません。
親テーマと子テーマでも同じことができます。
しかし、やはり、ジョシュアの答えは素晴らしかった。