我已将我的内容从Yii网站迁移到Wordpress,我的所有帖子都填充了带有各种样式和ID和类的div标签,我想使用模式将它们全部删除。我在互联网上搜索了这个函数,但它确实删除了结束标记,但没有包含其他属性的开始标记,如样式id或类:
function remove_divs($data) {
$filteredContent = preg_replace(array('/<\s*div.*?>/', '</div>'), '', $data['post_content']);
$data['post_content'] = $filteredContent;
return $data;
}
add_filter('wp_insert_post_data', 'remove_divs', 99);
你能帮我弄清楚什么不起作用吗?
答案 0 :(得分:1)
受到前一个答案的启发,我编辑了我的功能,它运作得很好。这是代码:
function remove_divs($data) {
$filteredContent = preg_replace(array('/<\s*div[^>]*>/', '</div>'), '', $data['post_content']);
$data['post_content'] = $filteredContent;
return $data;
}
add_filter('wp_insert_post_data', 'remove_divs', 99);
感谢您的回答!
答案 1 :(得分:0)
你可以尝试这种模式
$pattern = "/<div[^>]*>(.*?)<\/div>/";
$content = '<div class="test">Alpha Beta Gamma</div>Test<div class="best">Delta Gamma Eta</div>';
preg_match_all($pattern, $content, $match);
var_dump($match);