添加子主题css到

时间:2014-10-06 22:13:47

标签: php html css wordpress parent-child

我有一个网站(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>

它破坏了我的网站,因为它不是“插入”头标记,而是替代它。

如何在不篡改父主题的情况下做到这一点?

2 个答案:

答案 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">