wordpress函数:使用str_replace去除头部的css

时间:2011-08-12 13:42:14

标签: php wordpress wordpress-theming

我目前正在尝试删除/评论wordpress的head部分中的标记。

这是我的功能。

function strip_style() { ?>
    <?php

    $commented_style = str_replace("<link rel="stylesheet" type="text/css" href="http://localhost/wp-content/themes/headway-208/style.css" />", "<!-- <link rel="stylesheet" type="text/css" href="http://localhost/wp-content/themes/headway-208/style.css" /> -->", $rawstring);

    echo commented_style;

    ?>
<?php
}

add_action('wp_head', 'strip_style', 1);

我也不能使用wp_enqueue_stylewp_deregister_style,因为我尝试删除的行是使用父主题进行硬编码的。

基本上我想禁用默认的css(styles.css)加载,所以我可以使用自己的样式而不是覆盖默认样式。

如果我使用str_replace()的方法是好的,请提供建议。你能建议一个替代方案吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

只需在您的子主题中复制header.php文件,然后编辑您不想显示的内容。 如果在子主题和父主题中都有header.php,则将使用子主题中的header.php。这对所有文件都很重要。如果要编辑任何父主题文件,只需将其复制到子主题中并在那里进行编辑。

就css而言,在头部首先将父主题style.css链接在其下面,子主题style.css,因此在子主题中具有相同特异性的每个规则都将覆盖父主题规则,不需要任何mambo -jumbo dirty magic。

答案 1 :(得分:0)

也许我还没有完全理解,但你为什么不复制现有的主题文件夹,重命名它并通过擦除style.css来制作你自己的主题并重新开始?

在任何情况下,如果你必须执行str_replace(),你的代码都是错误的。首先,你的PHP标签到处都是,你不能嵌套它们。其次,您的字符串将无法正确解析,因为您在双引号字符串中使用双引号。固定和简化:

<?php

function strip_style() {
    $link = '<link rel="stylesheet" type="text/css" href="http://localhost/wp-content/themes/headway-208/style.css" />';
    echo str_replace($link, '<!-- ' . $link . '-->', $rawstring);

    // But where does $rawstring come from?
}

?>

<?php

    add_action('wp_head', 'strip_style', 1);

?>