Как перенести meta-данные старого WordPress плагина HeadSpace2 в Yoast SEO
Столкнулся с этой задачей по работе и решил опубликовать, поскольку после обновления 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