您可能可以通过打开某种过滤器来实现这一点the_content
.
下面是一个快速而肮脏的示例,它可以找到<p>
并插入一个命名的锚,然后在内容顶部添加指向每个锚的链接列表。
查看Shortcode API 同样,也可以通过添加自己的短代码来添加包含文本的任意部分,如[section id="something"]
.
class InsertAnchors {
protected $count = 0;
protected $links = \'\';
public function build( $pattern, $content ) {
$this->count = 0;
$this->links = \'\';
$content = preg_replace_callback( $pattern, array( $this, \'_replacer\' ), $content );
return \'<p>\' . $this->links . \'</p>\' . $content;
}
public function _replacer( $matches ) {
$this->count++;
$this->links .= \'<a href="#section_\' . $this->count . \'">Section \' . $this->count . \'</a><br>\';
return \'<p><a name="section_\' . $this->count . \'"></a>\';
}
}
function anchors_content_filter( $content ){
$insert = new InsertAnchors();
return $insert->build( \'~<p>~\', $content );
}
add_filter( \'the_content\', \'anchors_content_filter\', 100 );