Как скопировать, сдублировать записи?

Ссылка скопирована
1 ответ

В общем
есть сайт на wordpress
созданы 2 типа записей cancer и blog
в blog наполнен записями
как и с помощью чего я могу скопировать материалы из blog в cancer ?
Спасибо

Дополнительно:

Дублировать записи не нужно.

Ответы:

Можно сделать дубли любим плагином и поменять post type через:
https://wordpress.org/plugins/post-type-switcher/

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Дмитрий К. Ответ

Если нужно перенести или сдублировать материалы из одного post type в другой, сначала определите, что именно должно сохраниться: заголовок, контент, миниатюра, автор, дата, рубрики, метки, произвольные поля, SEO-мета и старый URL. Простое копирование через админку часто переносит только видимую часть записи, а потом всплывают проблемы с метаданными и ссылками.

Для разовой задачи проще всего использовать плагин Post Type Switcher: он не копирует запись, а меняет у неё post_type. Это хорошо, если материал должен переехать окончательно. Если нужна именно копия, тогда лучше делать небольшой скрипт через wp_insert_post().

$old = get_post(123);
 
$new_id = wp_insert_post([
    'post_title'   => $old->post_title,
    'post_content' => $old->post_content,
    'post_excerpt' => $old->post_excerpt,
    'post_status'  => 'draft',
    'post_type'    => 'post',
    'post_author'  => $old->post_author,
]);
 
if ($new_id) {
    $thumb_id = get_post_thumbnail_id($old->ID);
    if ($thumb_id) {
        set_post_thumbnail($new_id, $thumb_id);
    }
}

$old = get_post(123); $new_id = wp_insert_post([ 'post_title' => $old->post_title, 'post_content' => $old->post_content, 'post_excerpt' => $old->post_excerpt, 'post_status' => 'draft', 'post_type' => 'post', 'post_author' => $old->post_author, ]); if ($new_id) { $thumb_id = get_post_thumbnail_id($old->ID); if ($thumb_id) { set_post_thumbnail($new_id, $thumb_id); } }

После создания копии нужно отдельно перенести таксономии и нужные мета-поля. Не копируйте всё подряд из wp_postmeta: там могут быть служебные ключи конструктора, кэша, старого шаблона или плагинов, которые в новом типе записи не нужны.

Если материалов много, безопаснее сделать экспорт ID, прогнать скрипт на 5-10 записях, проверить фронт, SEO title, canonical и миниатюры, а уже потом запускать массово. Перед массовой операцией обязательно сделайте дамп базы. Если старые URL уже индексировались, после переноса нужны 301-редиректы со старых адресов на новые.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно