Intereting Posts
Добавить меню AZ в верхней части кода листинга AZ Один пост на моем сайте собирается на 404 странице Удалить / Переименовать категорию без категорий в WordPress Решить свойства продукта с помощью пользовательских таксономий? Как предотвратить виджет от эха в неправильном положении в DOM Кнопка загрузки для аудиопроигрывателя wp Нестандартная ссылка меню не работает для внешнего сайта странное поведение с «rin» в новой установке 4.6.1 Пользовательские комментарии – родительский / вложенный ответ Для лучшей цифровой журналистики, как сохранить второй заголовок и выдержку? Как я могу позволить шаблонам выбирать, какие таблицы стилей находятся в очереди? Почему бы не экспортировать блог с одного сайта на новый сайт? Почему pre_get_posts () возвращает «date» в качестве параметра orderby для каждого сортируемого столбца? WP REST API v2 не может фильтровать пользователей по ролям удалить все подменю из плагина

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

Я пытаюсь получить ТОЛЬКО загруженные стили и скрипты текущей активной темы. Я использую 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 .