我想将<h2 class="fusion-post-title">
标记替换为<h1>
标记。
我在regex101.com上测试了正则表达式,捕获组就在那里。
这是正确的方法吗?也许Wordpress没有触发我的add_filter()
?
function replace_content($content){
$content = preg_replace('#<h2 class="fusion-post-title"(.*?)>(.*?)<\/h2>#si', '<h1 class="fusion-post-title"${1}>${2}</h1>', $content);
return $content;
}
add_filter('the_content','replace_content');
答案 0 :(得分:0)
标题不是内容的一部分,因此您的过滤器无法正常工作。我上次检查主题融合主题时,他们用于生成标题的功能没有应用您可以挂钩的过滤器,但他们确实建议有更改主题的主题选项使用的标签。看到你有几个选择:
您可以搜索fusion-post-title
主题并查看出现的功能,以及是否可以使用任何过滤器或选项。不幸的是,由于它是一个优质的主题,我没有最近的副本可以检查,否则我会指出你正确的方向。
您可以直接修改主题模板:我建议您直接使用主题文件而不是主题文件。有关设置子主题的更多信息,您应该refer to the codex.
假设您使用选项2:一旦您设置了您的孩子主题(即您已获得functions.php
和styles.css
),您就可以将相关模板从父主题复制到子主题,然后根据需要进行编辑。如果您看一下Avada的single.php
,您会注意到类似的内容:
<?php echo avada_render_post_title( $post->ID, false, '', '2' ); ?>
最后一个参数 - 2
- 是要使用的标题级别(即h2
)。只需将其更改为1
即可。或者用你自己的标记完全替换它:
<h1 class="post_title"><?php the_title();?></h1>
重复此操作,需要任何模板。