Есть вот такой код
function links_remove () {
$args = array ('numberposts' => 9999);
$allposts = get_posts( $args );
foreach( $allposts as $post ) {
$id = $post->ID;
$content = $post->post_content;
$links_mass=array(
/*Тут куча ссылок по типу этих:*/
'http://www.site.ru/',
'http://www.site2.ru',
'http://www.site2.ru/goods/kuhonnyy-utvar.html/',
'http://www.site3.ru/wto-to'
);
foreach($links_mass as $link) {
$pattern = '/<a([^>]*)href="' . preg_quote($link, '/') . '([^"]*)"([^>]*)>|<\/a>/i';
$new_content = preg_replace ($pattern, "", $content);
}
$new_post = array();
$new_post['ID'] = $id;
$new_post['post_content'] = $new_content;
wp_update_post( $new_post );
}}
add_action ('init', 'links_remove');
Но почему то ссылки не удаляются, а наоборот анкор ссылки забирает в себя весь текст следующий после ссылки, до того как не появится новая ссылка. Собственно, в чем проблема? Заранее всем спасибо.