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