it-swarm.dev

Hinzufügen einer Body-Klasse, wenn der Beitrag einen bestimmten Shortcode enthält

Einfache Kurzwahlfunktion:

function my_shortcode_function($atts,$content=null){
  // Do something
  return $content;
}
add_shortcode('my_shortcode','my_shortcode_function');

Ich frage mich, wie ich mehr Körperklasse hinzufügen kann, wenn der Benutzer diesen Shortcode in Inhalten verwendet.

Ich kann so etwas nicht machen:

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

Irgendeine Idee ?

1
l2aelba

Ich mache so etwas in einem meiner Plugins:

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

Ich bin mir nicht sicher, ob es wirklich notwendig war, aber ich kann es jetzt wahrscheinlich auch nicht entfernen. TheDeadMedic ist richtig, Sie sollten darüber nachdenken, ob Sie dies wirklich tun müssen.

5
helgatheviking