Как перенести meta-данные старого WordPress плагина HeadSpace2 в Yoast SEO

Категория: WordPress

Столкнулся с этой задачей по работе и решил опубликовать, поскольку после обновления WordPress 4.5 плагин HeadSpace2 (который и так уже не обновлялся более 2-х лет) начал ломать функционалWisywig редактор TinyMCE и другой функционал админки.

Порядок импорта мета полей HeadSpace2 в Yoast SEO:

1. Отключаем HeadSpace2.

2. Устанавливаем и активируем Yoast SEO.

3. Регистрируем следующий обработчик в файле functions.php вашей темы (или в init файле нового плагина):

add_action('admin_action_do_insert_meta_for_yoast_seo', function() {
    global $wpdb;

    // Insert meta description
    $sql = "SELECT post_id, meta_value FROM wp_postmeta WHERE meta_key = '_headspace_description' AND meta_value != ''";
    $rows = $wpdb->get_results($sql);
    foreach ($rows as $row) {
        update_post_meta($row->post_id, '_yoast_wpseo_metadesc', $row->meta_value);
    }
    printf("Импортировано %d meta description.<br>", count($rows));

    // Insert meta title
    $sql = "SELECT post_id, meta_value FROM wp_postmeta WHERE meta_key = '_headspace_page_title' AND meta_value != ''";
    $rows = $wpdb->get_results($sql);
    foreach ($rows as $row) {
        update_post_meta($row->post_id, '_yoast_wpseo_title', $row->meta_value);
    }
    printf("Импортировано %d meta title.<br>", count($rows));

    exit();
});

4. Переходим по адресу:

http://YOU_SITE/wp-admin/admin.php?action=do_insert_meta_for_yoast_seo

Все!

На более 2000 записей скрипт успевал отрабатывать до 30 сек. Если нет - увеличивайте макс. время выполнения скрипта или разделите процесс обработки на несколько. В общем, варианты есть)

#wp import meta data headspace2 to yoast seo

категория: WordPress