08
Ноя
2016

Как массово удалить известные ссылки в wordpress?

Есть около тысячи ссылок, которые необходимо удалить из WordPress, не затрагивая текст ссылки. Есть такой код, который подсказали на другом ресурсе, но он совершенно не работает. Вставляется в functions.php для единичного прогона.

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(
            /*
            Здесь список абсолютно разных ссылок через запятую
            */
            );
        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');

Источник: https://ru.stackoverflow.com/questions/588276/%D0%9A%D0%B0%D0%BA-%D0%BC%D0%B0%D1%81%D1%81%D0%BE%D0%B2%D0%BE-%D1%83%D0%B4%D0%B0%D0%BB%D0%B8%D1%82%D1%8C-%D0%B8%D0%B7%D0%B2%D0%B5%D1%81%D1%82%D0%BD%D1%8B%D0%B5-%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8-%D0%B2-wordpress

Share

Тебе может это понравится...