Подключаем скрипты и стили к постам в 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, Всяко-разно

Комментарии ()