Я редактирую стандартную двадцать девятую тему, которая поставляется с последним wordpress.
Мне нужно добавить несколько моих .css-файлов в wp_head, но я не уверен, как это сделать. Я в настоящее время вызываю свои файлы за пределами wp_head, но это грязно и хотелось бы сделать это правильно.
<meta charset="<?php bloginfo( 'charset' ); ?>"> <meta name="viewport" content="width=device-width"> <title><?php wp_title( '|', true, 'right' ); ?></title> <link rel="profile" href="http://gmpg.org/xfn/11"> <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>"> <!--[if lt IE 9]> <script src="<?php echo get_template_directory_uri(); ?>/js/html5.js"></script> <![endif]--> <link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo("template_url"); ?>/bootstrap.css" /> <script type="text/javascript" src="<?php bloginfo("template_url"); ?>/js/bootstrap.min.js"></script> <?php wp_head(); ?>
Где определяется, что входит в wp_head, и как я могу добавить его к нему?
Чтобы добавить свой собственный css в wp_head (), вам необходимо использовать коллекцию функций WordPress:
Сначала вы поместите это в файл functions.php вашей темы:
add_action('wp_enqueue_scripts', 'your_function_name');
(Это использует крюк добавления действия , подключающийся к действию wp_enqueue_scripts .)
Затем вам нужно добавить функцию в файл functions.php, который будет использовать функцию WordPress wp_enqueue_style :
function your_function_name() { wp_enqueue_style('my-script-slug', get_stylesheet_directory_uri() . '/your_style.css'); }
Обратите внимание на использование get_stylesheet_directory_uri () – это получает соответствующий каталог стилей вашей темы.
Это также правильный способ вставки сценариев в ваш заголовок. Пример:
function your_function_name() { // Enqueue the style wp_enqueue_style('my-script-slug', get_stylesheet_directory_uri() . '/your_style.css'); // Enqueue the script wp_enqueue_script('my-script-slug', get_stylesheet_directory_uri() . '/your_script.js'); }
Которая использует функцию WordPress wp_enqueue_script .
Наконец, стоит упомянуть, что изменение темы двадцать тринадцатой (или любой другой основной темы), как правило, не рекомендуется. Рекомендация заключается в создании детской темы (излишней, по моему мнению, но стоит упомянуть).
используйте wp_enqueue_style для таблиц стилей и wp_enqueue_scripts для javascript
http://codex.wordpress.org/Function_Reference/wp_enqueue_style
http://codex.wordpress.org/Function_Reference/wp_enqueue_script
@cale_b Мои плагины основаны на библиотеке jQuery, и вызов jQuery из функции wp_head () не был успешным на этом пути
wp_enqueue_script ('jquery', 'get_stylesheet_uri ();.' js / jquery.min.js ');
правильный способ добавления этого в header.php перед всем …
<?php wp_enqueue_script("jquery"); ?> <?php wp_head(); ?>
Очень важно, чтобы вы сначала вызывали jquery перед wp_head (); крючок других импорт … WordPress поставляется с библиотекой jQuery, потому что он использует его для страниц wp-admin и некоторых других $ post и $ get запросов на странице … Использование их скрипта намного безопаснее и проще затем добавьте свой собственный файл jquery.min.js в каталог тем …
wp_head (); функция – это лучший способ вызова таблиц стилей, но когда он попадает в библиотеки Javascripts и Javascript, это может привести к ошибкам.
Также обратите внимание, что иногда WordPress не отображает вашу «$» как переменную jQuery, и вы получите ошибки для TypeError, что, конечно, правильно. В этом случае вы должны изменить все «$» на «jQuery», который также является определенной переменной внутри библиотеки jQuery WordPress …
Также обратите внимание, что иногда вам понадобится встроенный javascript и т. Д.
<script> addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } </script>
Все эти встроенные скрипты не должны находиться внутри вашего index.php, а не с вашим header.php или footer.php … Вы можете перечислить все их внутри другого вашего inline-scripts.js и вызвать их так, как они должны быть были перечислены перед следующим:
<script type="text/javascript" src="<?php bloginfo("template_url"); ?>/js/your-inline-scripts.js"></script>
или
<script type="text/javascript" src="<?php echo get_stylesheet_directory_uri(); ?>/js/yourScript.js"></script>
Я предпочитаю этот второй вариант …
Таблицы стилей можно загружать практически в любом месте, но при установке WordPress по умолчанию используется wp_head () для вывода основной таблицы стилей (style.css);
Например: в Twentyfourteen он загружается по строке 232 функции functions.php
// Load our main stylesheet. wp_enqueue_style( 'twentyfourteen-style', get_stylesheet_uri(), array( 'genericons' ) );
Одна из причин, почему предпочтительнее использовать этот крючок, состоит в том, что если у вас есть два плагина, которые используют одну и ту же таблицу стилей, и оба они используют один и тот же дескриптор wp_enqueue_style, тогда WordPress будет добавлять только таблицу стилей на странице один раз, другая причина в том, что этот дескриптор имеет параметр зависимости, но это еще одна история …
Hmm да к выше, но также можно связать свои листы после того, как wp_head вызывается так
<?php wp_head(); ?> <link href="/wp-content/themes/YourTheme/cssFolder/YourOtherStyleSheet.css">
Обычно это то, что я делаю, так как это яснее читать.
Кроме того, я бы рекомендовал использовать что-то вроде http://html5blank.com для чистой чистой пустой темы wp вместо того, чтобы пытаться изменить тему по умолчанию (так что ни одна детская тема не совсем другая тема)