2014-08-31 2 views
0

Я новичок в Wordpress и пытаюсь изменить выходящую тему. На самом деле, тема генерирует пользовательский код CSS и добавляет в wp_head.Удалить тему сгенерированные пользовательские css из категории страницы wordpress

add_action('wp_head', 'custom_css_generator', 10); 

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

Я последовал за эту статью http://surefirewebservices.com/wordpress/how-to-use-remove_action-with-conditional-tags и добавил код что-то вроде этого:

add_action('wp_head','remove_theme_custom_css'); 
function remove_theme_custom_css() { 
    if (is_category()) { 
     remove_action('wp_head', 'custom_css_generator',10,0); 
    } 
} 

но не работает. Пожалуйста, помогите мне решить эту проблему.

Я добавил эту функцию functions.php ребенок-ТЕМЫ

+0

it is working just относится к категориям с помощью этой функции: is_category, try delete if statement. – Farzad

+0

Можете прочесть код, как вы говорите. Я попробовал, и он говорит о синтаксической ошибке, неожиданной «remove_action» – Rick

ответ

2

Ваш код почти там, это только ваш приоритет и принял аргументы, что это неправильно

Ваш приоритет 10, что означает, что yo ur remove_action выполняется одновременно с add_action. Я подозреваю, что вы делаете свои изменения в дочерней теме, на самом деле ваша функция удаления будет запущена до того, как действие будет добавлено, и это совсем не сработает. Перед тем, как удалить его, вам нужно дождаться действия, чтобы выполнить ececute.Вам нужно добавить функцию с более низким приоритетом, что приводит к более высокому числу

remove_action не принимает далее параметр, так просто удалить, что

Таким образом, чтобы сделать код работы, выполните следующие действия

add_action('wp_head','remove_theme_custom_css'); 
function remove_theme_custom_css() { 
    if (is_category()) { 
     remove_action('wp_head', 'custom_css_generator', 20); 
    } 
} 

EDIT

Это также должно работать

if (is_category()) { 
    remove_action('wp_head', 'custom_css_generator', 20); 
} 
+0

Нет успеха. Я думал, что это почти сделано. Даже вставил код в основную тему functions.php, но все еще не работал. Вытащил мои волосы. – Rick

+0

См. Мое обновление. Сделал ошибку, извините за это –

+0

Не знаю, почему ** remove_action ** не работает и не отдыхает. – Rick

0

В файле header.php или потенциально другой файл PHP, который имеет в PHP функции для вашей темы, которые вы, вероятно, найти что-то похожее на это:

wp_enqueue_style('theme_stylesheet'); 

Какой загрузок файл style.css для вашей темы.

Если вы не хотите, чтобы быть загружены на ваших страницах категорий, вы должны сначала выяснить, какой тип страницы именно, и вы можете обернуть вышеуказанное заявление в WordPress условно, например, как это:

if (! (is_category())) { // is_category defines any category archive page 
    wp_enqueue_style('theme_stylesheet'); 
} 

Это означает, что если страница не является страницей категории, загрузите таблицу стилей тем. Если это страница архива категорий, не загружайте таблицу стилей тем.

Wordpress ссылки:

is_category

get_stylesheet

wp_enqueue_script

+0

Это сломает ваш полный стиль на этих конкретных страницах :-) –

+0

Спасибо за вашу помощь, но на самом деле ее php-файл с функцией custom_css_generator, как упоминалось выше, имеет много кода css и добавил его в wp_head, используя add_action ('wp_head', 'td_css_generator', 10); – Rick

+0

Используйте условное выражение в этой функции: custom_css_generator Как выглядит код в этой функции? – davidcondrey

Смежные вопросы