这个问题已经在这里有了答案:
使用php从h1标签获取所有值(4个答案)
【如何在WordPress中使用h2标签获取所有内容( [重复])】2年前关闭。
样本内容:
<
h2 id="h2-1">
H2 Heading (1)<
/h2>
<
p>
Lorem ipsum dolor sit amet consectetur ...<
/p>
<
h3 id="h3-1">
H3 Heading<
/h3>
<
h2 id="h2-2">
H2Heading (2)<
/h2>
我想要达到的目标:
<
ul>
<
li>
<
a href='http://www.srcmini.com/#h2-1'>
H2 Heading (1)<
/a>
<
/
<
li>
<
a href='http://www.srcmini.com/#h2-2'>
H2 Heading (2)<
/a>
<
/li>
<
/ul>
我知道可以用正则表达式函数来完成, 但是我不知道如何完成该函数。到目前为止, 这是我所做的:
function table_of_contents() {
$content = get_post_field( 'post_content', $post->
ID );
$tags = preg_match_all( '#<
h2>
(.*?)<
/h2>
#', $content, $matches );
return $tags;
}
#1你可以像这样使用正则表达式:
<
?php
$content = '<
h2 id="h2-1">
H2 Heading (1)<
/h2>
<
p>
Lorem ipsum dolor sit amet consectetur ...<
/p>
<
h3 id="h3-1">
H3 Heading<
/h3>
<
h2 id="h2-2">
H2Heading (2)<
/h2>
';
preg_match_all( '@<
h2.*?>
(.*?)<
\/h2>
@', $content, $matches );
$tag = $matches[1];
var_dump($tag);
输出如下:
array(2) {
[0]=>
string(14) "H2 Heading (1)"
[1]=>
string(15) "H2Heading (2)"
}
regex101上的详细信息:https://regex101.com/r/RNeVI2/1
推荐阅读
- 如何在WordPress中获取当前页面名称
- 如何在自定义WordPress主题中生成标题图像替代文本()
- 如何在WordPress博客中格式化代码语法()
- 如何修复断页的WordPress模板错误
- 如何解决WordPress的嵌套子类别存档页面的URL问题
- 如何修复我在php 7更新wordpress时出现的问题
- 如何修复页面响应()
- 如何修正WordPress主题中index.php默认的id=error-page
- LFS 系列从零开始 DIY Linux 系统(构建临时系统 - Binutils-2.25)