在我的WordPress页面上,我有时会遇到这样的问题,WordPress会在元素周围放置标签,而我不需要它们。例如,我在许多页面上都有“隐形锚”:
<a class="anchor" id="some-id"></a>
WordPress在它周围放置了一个标签,在我不想要的地方插入一个空格。
我知道我可以用这样的方式过滤内容:
function filter_ptags($content) {
return preg_replace(\'/<p(.)*(anchor)(.)*<\\/p>/\', \'<a class="anchor"></a>\', $content);
}
add_filter(\'the_content\', \'filter_ptags\');
然而,问题是,锚当然有一个单独的ID,我不知道。我如何解决这个问题?
SO网友:T.Todua
似乎你有一些插件,这导致了问题,因为WP没有在内容中放置隐藏的锚。您是否仔细检查了post editor文本区域(html/visual)以确定..anchor..
是否出现?
但是,我不建议过滤,而是将正确的内容保存在后端,而不是在前端过滤不正确的内容。
使用类似以下内容:
add_action(\'save_post\', \'my_filter_func\',1);
function my_filter_func($post_id){
if ( ! wp_is_post_revision( $post_id ) ){
$_POST[\'post_content\'] = str_replace(\'<a class="anchor"> OR WHATEVER SHOULD BE THERE, \'\', $_POST[\'post_content\']);
}
}