如果您想让实际的HTML引用正确的数字,下面是一般的方法。与JS类似,但更改了实际的HTML。
确定需要在哪种帖子类型上执行此操作。考虑创建一个特定的帖子类型,其中的数字总是会重新编号,这样您就不会在网站的其他部分重新编号,因为这些部分可能不需要重新编号。或者,考虑创建另一个页面模板,以便仅在使用特定模板时重新编号。
让作者始终链接到具有相同文本的图,即链接文本始终为“见图”或“见图”。返回并编辑现有链接,使其始终保持一致,并确保“见图”仅在要编号的链接中使用。
在中设置过滤器functions.php
负责编号。本例假设您正在使用一个名为“figurelist”的自定义帖子类型,但您可以将条件更改为仅在使用特定页面模板时运行。
// callback function to add number: 1.1, 1.2, etc.
function figure_count($matches) {
static $i = 1;
return \'see figure 1.\' . $i++ . \'<\';
}
// add a filter on the_content
add_filter(\'the_content\', \'wpse_301865_figure_numbers\', 10, 1);
function wpse_301865_figure_numbers($content) {
// only make changes if this is the main query on a \'figurelist\' cpt
if(is_singular(\'figurelist\') && is_main_query()) {
// reduce any "see figure" links - change "see figure x.x" to "see figure"
$content = preg_replace(\'/see figure (.*?).</\', \'see figure<\', $content);
// now add new numbers
$content = preg_replace_callback(\'/see figure</\', \'figure_count\', $content);
}
}
因此,您必须再次小心大写,但可以调整preg\\u replace以匹配变量大小写。