Intereting Posts
Включая конкретный скрипт Javascript в шаблон. Правильно ли мой код? Определить содержание страницы на основе родительской страницы Удалять все запланированные события с помощью определенного крючка Проверьте, находится ли сообщение в проекте или в ожидании проверки? Как добавить LIGHTBOX в приложения? Как получить сообщения в течение определенного года / даты (с SQL-запросом)? get_post_types не работает должным образом в admin Вход в WordPress с использованием данных внешней базы данных Разрешить пользователям редактировать свою роль из интерфейса Как фильтровать URL-адрес при отправке сообщений? Где правильное место (а) в tw.sysixteen's header.php, чтобы добавить веб-сайт Google? Ошибка Nonce со вторым аргументом wp rest api v2 return json_no_route Woocommerce: класс css, используемый для редактирования admin admin после добавления настраиваемого поля выставления счетов Предоставление вложений страницы архива

Добавление класса body, когда сообщение содержит определенный короткий код

Простая функция короткого кода:

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

Есть идеи ?

Solutions Collecting From Web of "Добавление класса body, когда сообщение содержит определенный короткий код"

Я делаю что-то подобное в одном из моих плагинов:

 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 прав, вы должны подумать, действительно ли вам нужно это делать.