如何从插件脚本确定活动主题是否具有 <h1>The Post Title</h1>
-
16-10-2019 - |
题
我的插件需要知道当前活动主题是否将帖子标题放置在 H1 标题标签中?我正在寻找有关创建可以识别这一点的脚本的方法的建议。
更新:该插件评估帖子内容的 SEO 配置文件,以帮助用户改进搜索排名。h1 标签仅次于帖子标题,是 SEO 最重要的标签之一。但是,如果主题已经这样做了(就像许多主题一样),我不想要求用户将其主要关键字包含在帖子内容的 h1 标题标记中。
其他提示
你永远无法确定,但你可以使用启发法做出有根据的猜测。您只谈论单个帖子页面,还是也谈论列表?有些小部件还列出了帖子标题,我想您不关心侧边栏?
另外,你也不知道是不是标题写的 <h1>
标签。如果你看到 <h1>{$title}</h1>
, ,是帖子标题还是网站名称,还是完全不同的东西?
我会将问题简化为:当前主模板文件(即 包含于 template-loader.php
) 包含 <h1>[some stuff]title[some stuff]</h1>
?这将涵盖 <h1>{$title}</h1>
, <h1><?php the_title(); ?></h1>
和其他常见模式。它可能会被注释部分所愚弄,例如 <!-- <h1>{$title}</h1> -->
. 。它不涵盖 get_template_part()
包括,也许你可以自己添加(但没有简单的方法)。留意 <h1>Site name</h1> [content] <h2>Post title</h2> [content] <h1>Some other big heading</h1>
, ,你不想匹配它。
总体想法是(后期)加入 template_include
过滤器,以便您知道将包含哪个模板文件。分析该文件,寻找上面的模式。如果找到它,请设置一个变量 null
到 true
. 。如果找不到,请将其设置为 false
. 。缓存结果,因为这可能是一项昂贵的操作,而且模板不会经常更改。
在包含模板之前您不会知道结果,但我假设您会更改输出 the_title()
根据结果?既然如此,你就不需要那么早知道。