我目前正在尝试删除/评论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_style
和wp_deregister_style
,因为我尝试删除的行是使用父主题进行硬编码的。
基本上我想禁用默认的css(styles.css)加载,所以我可以使用自己的样式而不是覆盖默认样式。
如果我使用str_replace()的方法是好的,请提供建议。你能建议一个替代方案吗?
谢谢!
答案 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);
?>