簡単なショートコード機能:
function my_shortcode_function($atts,$content=null){
// Do something
return $content;
}
add_shortcode('my_shortcode','my_shortcode_function');
ユーザーがこのショートコードをコンテンツに使用するときに、さらにボディクラスを追加する方法.
こんなことはできません:
function my_shortcode_function($atts,$content=null){
// Do something
add_filter('body_class','my_body_class');
return $content;
}
function my_body_class($classes) {
$classes[] = 'foo';
return $classes;
}
add_shortcode('my_shortcode','my_shortcode_function');
何か案が ?
私は自分のプラグインの1つでこのようなことをしています。
function my_body_class( $c ) {
global $post;
if( isset($post->post_content) && has_shortcode( $post->post_content, 'your-shortcode' ) ) {
$c[] = 'your-class';
}
return $c;
}
add_filter( 'body_class', 'my_body_class' );
本当に必要かどうかはわかりませんが、今は削除することもできないでしょう。 TheDeadMedicは正しいです、あなたが本当にこれをする必要があるかどうかについて考えるべきです。