Подключаем скрипты и стили к постам в WordPress
Для вчерашней заметки, мне понадобилось подключить к посту дополнительный CSS и JavaScript. В настройках WP ни чего подобного не нашел. Поэтому пришлось сделать некоторые доработки в header.php
.
Находим в этом шаблоне строчку
<?php wp_head(); ?>
</head>
И вставляем перед ней вот такой вот простенький код:
// Шаг 1
<?php $custom_fields = get_post_custom($post->ID);
// Шаг 2
$post_styles=$custom_fields['style'];
$post_js=$custom_fields['js'];
// Шаг 3
if(sizeof($post_styles)>0)
foreach ( $post_styles as $key => $value )
echo '<link rel="stylesheet" type="text/css" href="'.(get_option('home').$value).'"/>';
if(sizeof($post_js)>0)
foreach ( $post_js as $key => $value )
echo '<script src="'.get_option('home').$value.'" type="text/javascript"></script> ';
?>
Теперь собственно что делает скрипт: на первом шаге он получает массив произвольных параметров поста. На втором — «выдерает» из массива этого массива параметры с нужными нам ключами (в данном случае "style"
и "js"
). Так как с одним ключем может быть связано несколько параметров, получаем мы тоже массивы. И, наконец, на последнем шаге, проверяется, что массивы не пусты, а затем циклом пишем соответствующие HTML теги.
Теперь, чтобы подключить какой то скрипт к посту, нужно просто при написании поста, в блоке «Произвольные поля» добавить ссылки на стили и/или скрипты, указав в имени параметра "js"
— для скрипта и "style"
— для стиля.
Имейте в виду, что скрипты подключаются не только на странице поста, но и на главной, когда пост с подключенными скриптами выводится первым.
Если кто знает, как этого избежать, буду рад выслушать.
Теги: PHP, Web-programing, WordPress, Всяко-разно