2016-02-18 3 views
0

Бит является основным вопросом здесь, но может кто-то подтвердить, что это утверждение будет подтверждено: Страницы WordPress (определенные шаблоны, созданные внутри) могут тянуть разные CSS и JS?WordPress с использованием разных CSS - это возможно?

Или - позволяет WordPress разрешать универсальный CSS + JS по всему сайту?

Благодарим за освобождение.

ответ

0

С wp_enqueue_style() вы можете добавить таблицу стилей (https://developer.wordpress.org/reference/functions/wp_enqueue_style/)

Вы можете использовать его после обнаружения какой шаблон используется

function enqueue_custom_stylesheet() { 
    if(get_page_template() == 'contact.php') 
      wp_enqueue_style('contact-style', get_template_directory_uri().'/contact.css'); 
} 
add_action('wp_enqueue_scripts', 'enqueue_custom_stylesheet'); 
2

Зависит от того, что плагин и темы вы используете. Функции WordPress/PHP wp_enqueue_style() и wp_enqueue_script() могут использоваться буквально всеми (ядро, темы, плагины, вы), чтобы запросить WordPress для загрузки стилей или JavaSctript. Вы можете комбинировать это с функциями WordPress, чтобы проверить, является ли текущая страница тем, что вы хотите отфильтровать (post type, post, front-page, category archive, template и т. Д.). Вот пример, чтобы загрузить пользовательский стиль, если на первой странице:

if (is_front_page()) { 
    wp_enqueue_style('custom-frontpage', 'my/path/to/frontpage.css'); 
} 

Вы должны подключить этот кусок кода на wp_enqueue_script действия, так что WordPress выполняет его в соответствующее время. Ниже приведен пример использования анонимной функции:

add_action('wp_enqueue_scripts', function() { 
    if (is_front_page()) 
     wp_enqueue_style('custom-frontpage', 'my/path/to/frontpage.css'); 
}); 

Вы также можете зарегистрировать свой код в качестве «нормальной» функции и передать имя функции в add_action() вместо.


Edit: Включение и отключение плагинов немного сложнее, так как вы никогда не можете знать, как они реализуют свои функции без проверки исходного кода. Вот мои мысли по этому поводу:

Плагин, вероятно, использует вышеуказанный метод (wp_enqueue_styles, wp_enqueue_scripts), чтобы зарегистрировать его стили и скрипты. Плагин, поскольку он предполагает необходимость на всех страницах и сообщениях, делает это на каждой странице без условной проверки, описанной ранее.

Вы можете сделать одно из следующих действий, чтобы остановить плагин делать это:

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

  2. Написать «счетчик плагин» (вы можете просто добавить его к вашей теме или найти плагин, который сеточки добавить PHP на страницу), что «dequeues» style и script добавлен плагин с инвертированием условной тег

Контр-плагин подход будет выглядеть следующим образом:

function custom_unregister_plugin() { 
    if (not the desired blog post) { 
     wp_dequeue_style('my-plugin-stylesheet-handle'); 
     wp_dequeue_script('my-plugin-script-handle'); 
    } 
} 

Убедитесь, что эта функция выполняется после enqueuing-код вашего плагина, придав ему низкий априорно ти в том же крюке (999 это просто пример, проверить это самостоятельно):

add_action('wp_enqueue_scripts', 'custom_unregister_plugin', 999); 
+0

ОК спасибо за Ваш ответ ... положить ваш пример на практике, если мы используем WordPress плагин, который имеет только использование на одном блоге сообщение (в этом например, его Календарь Google), тогда есть ли способ ограничить JS и CSS ТОЛЬКО ЧТО БЛОГ? Кажется нецелесообразным раздувать весь сайт на 500 страниц дополнительным JS + CSS только для одного сообщения в блоге .... спасибо ... – henry

+0

См. Обновленный ответ на этот вопрос :-) –

0

Вы можете использовать wp_enqueue_style для CSS, wp_enqueue_script для ваших JS, wp_localize_script передать переменные из PHP в JS.

Вы можете назвать это с крючками, как:

funtion enqueue_my_stuff() 
{ 
// your enqueue function calls 
} 
add_action('wp_enqueue_scripts','enqueue_my_stuff'); //front end 
add_action('admin_enqueue_scripts','enqueue_my_stuff'); //admin panel 
add_action('login_enqueue_scripts','enqueue_my_stuff'); //login screen