Wordpress 有一个用于过滤帖子或页面内容的钩子;
add_filter('the_content' fn() => // something);
这会过滤帖子内容并允许我们修改它/操作 DOM 等..
但是,它仅与
$post->post_content
的输出相关,因此在此之前不允许进行任何操作。虽然在此之前发生的大部分内容都可以通过模板进行操作,但 WordPress 仍然会在开始正文标记之后添加两个 HTML 元素。第一个是类为 "wp-site-blocks"
的 div,第二个是 "entry-content"
。
是否有一个钩子或类似的东西可以允许在服务器级别操作开始正文标记中的整个内容。
类似:
add_filter('full_post_body_content');
如果您是从子主题执行此操作,您可能需要替换模板。例如,复制当前的 - single-post.php (或自定义帖子类型“single-{custom-post-type}.php”)并替换这些元素,实际上是最简单的方法。
您可以尝试的其他解决方案 - 'wp_head' 上的 ob_start() 以及 'wp_footer' 中的 ob_get_clean()。