Intereting Posts
Смутно с петлей и повторяющимися вещами Эхо последнего ребенка Таксономия (а не родители)? Сортировать темы по большинству ответов за X дней с помощью инструкции MYSQL Меню добавления сообщений и комментариев больше не отображается Что такое «расширенный» контекст в add_meta_box? Получить постоянную структуру% / posttype% /% category% /% postname% «Уведомление: неопределенный индекс:« ошибка при добавлении нового контента? Защита паролем wp-login.php Как (и в основном в какое время) я могу предотвратить запуск альтернативного cron? Мой виджет правой боковой панели внизу слева отклоняется, когда CSS – почему моя боковая панель падает в нижней части страницы? WooCommerce: несколько полей ввода для нескольких вариантов продукта Как добавить событие OnClick в конкретную ссылку в WordPress Показать изображения с различными размерами (the_post_thumbnail) для 1-го, 2-го и 3-го сообщений? Как упорядочить роль пользователя?

Проверка короткого кода «gallery» с использованием strpos всегда возвращает false

Я хочу, чтобы условно поставить в очередь скрипт и таблицу стилей в зависимости от того, используется ли shortcode в сообщениях. Вот как я это делаю ( на основе ):

 function doraemon_scripts() { if( is_single() ) { if (strpos($post->post_content,'[gallery') === false){ } else { wp_enqueue_style( ... ); wp_enqueue_script( ... ); } } } add_action( 'wp_enqueue_scripts', 'doraemon_scripts' ); 

Но проблема в том, что таблица стилей и сценарий не помещаются в очередь, поскольку, кажется, strpos всегда возвращает false. Что я могу делать неправильно?

Вам понадобится global $post чтобы получить переменную $post в объеме этой функции.

 function doraemon_scripts() { if( is_single() ) { global $post; if (strpos($post->post_content,'[gallery') === false){ } else { // wp_enqueue_style( ... ); // wp_enqueue_script( ... ); } } } add_action( 'wp_enqueue_scripts', 'doraemon_scripts' ); 

Использование $post global вне Loop не всегда надежное, но WordPress установит эту переменную на первое сообщение в результирующем наборе, которое будет правильным сообщением на отдельных страницах сообщений, но не будет правильным на других страницах.

Конечно, это не сработает, если что-то изменило глобальное, и вы не всегда можете предсказать, что будет делать плагин и где.

Вы можете быть более безопасным, используя …

 global $wp_query; $post = $wp_query->posts[0];