我有一个网站(http://lab.eksperimentar.com),我正在使用Delipress主题,它是孩子。 问题是:我在子主题中进行了更改,页面没有加载styles.css。
我想在这个html元素的“head”标签中“插入”:
<link rel="stylesheet" id="delipress-child-style-css" href="http://lab.eksperimentar.com/wp-content/themes/delipress-child/style.css" type="text/css" media="all">
如果我在子文件夹中打开function.php并插入
<head>
<link rel="stylesheet" id="delipress-style-css" href="http://lab.eksperimentar.com/wp-content/themes/delipress/style.css?ver=2.5.1" type="text/css" media="all">
</head>
它破坏了我的网站,因为它不是“插入”头标记,而是替代它。
如何在不篡改父主题的情况下做到这一点?
答案 0 :(得分:2)
正确的方法是使用wp_register_style()
函数,然后使用wp_enqueue_style()
。
这两个功能都需要挂钩wp_enqueue_script()。
来自CODEX的示例:
// Register style sheet.
add_action( 'wp_enqueue_scripts', 'register_plugin_styles' );
/**
* Register style sheet.
*/
function register_plugin_styles() {
wp_register_style( 'my-plugin', plugins_url( 'my-plugin/css/plugin.css' ) );
wp_enqueue_style( 'my-plugin' );
}
您也可以跳过注册表,只使用wp_enqueue_style()
单独使用相同的挂钩
另请阅读here使用儿童主题时..
add_action( 'wp_enqueue_scripts', 'load_my_child_styles', 20 );
function load_my_child_styles() {
wp_enqueue_style( 'child-theme', get_stylesheet_uri() );
}
另一个(不太推荐)的选项,如果您只有简单的CSS并且想直接将其输出到HEAD
,则会使用wp_head()
操作
<?php
function add_styles()
{
?>
<style type="text/css">
.menu ul li.world a {
background: url(<?php bloginfo('template_directory'); ?>/images/<?php echo get_option(THEME_PREFIX . 'intro_image'); ?>) repeat scroll 0%;
}
.m ul li.me a {
background: url(<?php bloginfo('template_directory'); ?>/images/<?php echo get_option(THEME_PREFIX . 'slider_image'); ?>) repeat scroll 0%;
}
</style>
<?php
wp_head
}
add_action('wp_head', 'add_styles'); ?>
请注意开始和结束PHP
代码
答案 1 :(得分:0)
无需编辑functions.php
文件;您应该打开位于子主题文件夹中的header.php
文件,然后在<head></head>
标记内添加以下代码:
<link rel="stylesheet" id="delipress-child-style-css" href="http://lab.eksperimentar.com/wp-content/themes/delipress-child/style.css" type="text/css" media="all">