Отключите wp_enqueue_styles действие для определенной страницы

У меня есть определенная страница на моем веб-сайте, где у меня не может быть ставивших в очередь таблиц стилей, таким образом, я должен не ставить в очередь все таблицы стилей, загруженные там. Проблема, я не знаю их идентификаторы, потому что они могут произойти или из нескольких различных тем или из других плагинов.

То, что я попытался сделать, удаляют wp_enqueue_styles действие, но без удачи.

Вот то, что я попробовал:

add_action( 'init', 'remove_enqueue_action', 99);
function remove_enqueue_action() {
    remove_action( 'wp_enqueue_styles','' );
}

Любая справка ценится.

2
04.09.2013, 22:47
3 ответа

Проверьте $wp_styles глобальный для получения таблицы стилей ID.

global $wp_styles;
var_dump($wp_styles);

Ищите handle ключ. Или...

var_dump(array_keys($wp_styles->registered));

Это должно дать Вам, что необходимо исключить их из очереди.

1
19.02.2020, 22:41
  • 1
    , но это не перечисляет стиль, зарегистрированный через тему. IE: функционируйте woo_load_frontend_css () {wp_register_style ('добиваться-расположение', get_template_directory_uri (). '/css/layout.css' '); wp_enqueue_style (' добиваться-расположение ');}//Конец woo_load_frontend_css () –  Eduardo Soubihe 04.09.2013, 23:44
  • 2
    Да, это делает на самом деле при выполнении его после того, как тема зарегистрировала таблицу стилей. –  s_ha_dum 05.09.2013, 04:55

это может быть сделано, где Вы, на самом деле ставят в очередь Ваши сценарии

как это

if(!is_page('page id on which you dont want styles') {
    add_action( 'wp_enqueue_scripts', 'functionname where you enqueue your style' );

}
-1
19.02.2020, 22:41
  • 1
    Это не только о таблицах стилей, ставивших в очередь пользователем, но и обо всех них. Вопрос говорит, что "У меня не может быть таблиц стилей, ставивших в очередь"... –  tfrommen 05.09.2013, 14:15
function dequeue_all () {
    global $wp_styles;
    // var_dump($wp_styles->queue);

    foreach ($wp_styles->queue as $handle) {
        wp_dequeue_style ($handle);
    }
}
add_action('wp_footer', 'dequeue_all', 9999);

Работа над тем глобальным циклическим повторением Вара дает Вам полный массив всех стилей, загруженных в то время, когда Вы обрабатываете того же, таким образом, можно исключить из очереди их всех просто указывающих каждый дескриптор.

-1
19.02.2020, 22:41
  • 1
    Добавьте объяснение к своему ответу: почему и как это могло решить проблему?См. также: Как Ответить на спасибо –  fuxia♦ 04.09.2013, 23:00
  • 2
    @mirkolofio, которые успешно не ставят в очередь все стили wp, но оно не сделало не ставивший в очередь таблица стилей темы. –  Eduardo Soubihe 04.09.2013, 23:02
  • 3
    @EduardoSoubihe - это даже ставивший в очередь? Или таблица стилей темы, трудно кодированная в теме header.php файл? –  tfrommen 05.09.2013, 10:14
  • 4
    Поэтому необходимо выполнить тот код после того, как код темы работал. Попробуйте этого: dequeue_all.php Этот должен работать, потому что он будет выполнен после темы il загруженный благодаря рычагу в wp_footer. –  mircobabini 05.09.2013, 10:21
  • 5
    Можно ли сказать нам, если ставившее целью решение добивается цели благодарность рычагу wp_footer?Спасибо. –  mircobabini 08.01.2014, 17:29

Теги

Похожие вопросы