Intereting Posts
Перенаправить старые строки строки запроса на новый URL-адрес add_rewrite_rule get_posts () и глобальные переменные Как получить динамическое содержимое боковой панели за сообщение Предупреждение Предупреждение $ wpdb-> подготовить неправильное количество переданных аргументов HowTo: Добавить обертку в короткий заголовок столбцов? WordPress "включает TEMPLATEPATH" или? Как удалить флаг для индекса WordPress .php mod_rewrite Как добавить строку запроса к разбивке на страницы? Добавьте дополнительные поля к показанному изображению node-wpapi: как обрабатывать аутентификацию? Лучшие практики для регрессионного тестирования сайтов WordPress? WPAlchemy MediaAccess Кнопка «Добавить медиа» открывает новую страницу, а не всплывает Multisite: различия между субдоменом и режимом подкаталога? Может ли это быть после установки? Объединение the_excerpt с the_content Woocommerce меняет цену продукта после того, как Woocommerce удалила его из базы данных

Получить только выделенные стили и скрипты текущей темы

Я пытаюсь получить ТОЛЬКО загруженные стили и скрипты текущей активной темы. Я использую preg_match, чтобы выделить только имена файлов сценариев темы. Если совпадения найдены, то просто эхо-маркеры этих имен файлов, чтобы я мог их удалить или удалить.

Но preg_match не работает. Я пытаюсь частично совместить текущую тему url ($ currthemeurl) с именем файла url ($ filenames) скрипта. Пожалуйста, обратите внимание на мои комментарии.

function remove_theme_scripts() { global $wp_scripts; $currthemeurl = get_stylesheet_directory_uri(); //Shows http://mydomain/wp-content/themes/mytheme foreach( $wp_scripts->queue as $handle ){ $obj = $wp_scripts->registered [$handle]; $handles = $obj->handle; //something.js $filenames = $obj->src; //SHOWS http://mydomain/wp-content/themes/mytheme/js/something.js if (preg_match($currthemeurl, $filenames)): //MATCH FOUND echo $handles; else: echo "NOTHING Match"; endif; } } 

Solutions Collecting From Web of "Получить только выделенные стили и скрипты текущей темы"

Первым аргументом preg_match считается шаблон, а не строка, поэтому, вероятно, это не так, как вы ожидаете. Вместо этого используйте strpos :

 function wpse_275760_theme_scripts() { global $wp_scripts; $stylesheet_uri = get_stylesheet_directory_uri(); foreach( $wp_scripts->queue as $handle ) { $obj = $wp_scripts->registered[$handle]; $obj_handle = $obj->handle; $obj_uri = $obj->src; if ( strpos( $obj_uri, $stylesheet_uri ) === 0 ) { echo $obj_handle; } else { echo 'NOTHING Match'; } } } 

strpos() возвращает начальную позицию совпадения, если она есть. Сравнение с === до 0 гарантирует, что URL-адрес сценария и URL-адрес темы совпадают с началом, что вам нужно, так как они будут начинаться с http://mydomain/wp-content/themes/mytheme .