Как скопировать запись или страницу в WordPress (3 метода)

Скорее всего, вы знаете, как мучительно дублировать контент записей или страниц, когда вы работаете с похожими структурами и планируете поддерживать согласованное форматирование. Вводить все это вручную может быть утомительно, и даже при копировании и вставке вы рискуете допустить ошибку.

Дублирование содержимого не должно быть таким сложным. WordPress предлагает пару способов – как встроенных, так и через плагины – для создания новых записей и страниц, идентичных существующим.

В данной статье кратко обсудим, почему может потребоваться дублировать страницу или запись в WordPress. И как это сделать с плагином и без него.

Когда может понадобиться дублировать страницу или запись в WordPress

Есть пару распространенных сценариев, когда вам необходимо скопировать страницу или запись в WordPress. Один из наиболее распространенных – создание шаблонов для будущего контента в блоге.

К примеру, если в записях обычно используется одна и та же структура и форматирование, вы можете создать шаблон, особенно стиль сложный. Все, что вам необходимо сделать для последующих публикаций – это добавить текст, картинки и любой другой необходимый контент.

Вам может потребоваться создать резервную копию записи или страницы, прежде чем вносить в нее изменения. Предположим, что вы только что выполнили проектную работу для покупателя, и он хочет ее проверить и внести изменения перед публикацией на веб-сайте.

Следует отметить одну важную вещь: наличие дублирующихся страниц или записей на веб-сайте не выгодно для поисковой оптимизации(SEO). Чтобы избежать подобных проблем, следует избегать публикации одного и того же содержимого дважды.

Как дублировать страницу или запись в WordPress

Дублирование записей и страниц может выполняться с плагинами или без них. Вот пару способов, которые вы можете попробовать, в зависимости от целей и уровня навыков.

1. Используйте редактор блоков для дублирования содержимого

Этот способ использует встроенный механизм дублирования, доступный из редактора блоков. Начните с открытия страницы или публикации, которую планируете скопировать.

Далее нажмите трехточечное меню в правом верхнем углу экрана. Выберите вариант Копировать все содержимое:

Как скопировать запись или страницу в WordPress(3 способа)
Далее вы можете без проблем создать новый пост и просто вставить в него скопированный содержимое.

Обратите внимание, что этот способ не копирует метаданные, такие как заголовок публикации, таксономии(категории и теги), или данные SEO, такие как ключевые слова и метаописания. Однако, если вы просто создаете шаблоны для будущего содержимого, это может работать нормально.

2. Создание дубликатов записей и страниц при помощи плагина

Доступно пару плагинов для дублирования записей, страниц и пользовательских типов записей. Некоторые популярные бесплатные варианты включают Duplicate Page and Post, Yoast Duplicate Post и Duplicate Page.

Несмотря на их запутанные названия, все данные плагины работают похоже и могут клонировать пару типов записей. Рассмотрим на пример..

Установите и активируйте плагин. Как только это будет сделано, ​​для каждой публикации или страницы в соответствующих списках на панели управления WordPress будет добавлена дублирующаяся ссылка:

Как скопировать запись или страницу в WordPress(3 способа)

Когда вы нажимаете на опцию «Дублировать» создается н овый пост или страница с тем же заголовком, но как черновик. Весь содержимое и метаданные также копируются.

Смотрите также:

Как создать интерактивные картинки в WordPress.

3. Добавьте к теме вариант «Дублировать»

Есть ещё один метод добавить без плагина на веб-сайт возможность дублирования. Этот способ предполагает редактирование темы. Если вы предпочитаете не устанавливать ещё один плагин на веб-сайт, но необходимо копировать метаданные между записями, это поможет решить задачу.

Прежде чем использовать этот способ, обязательно создайте резервную копию веб-сайта. Мы также рекомендуем использовать дочернюю тему. Это гарантирует, что вы не потеряете возможность дублирования при обновлении темы в будущем.

Будем использовать встроенный редактор тем WordPress, чтобы внести изменения в файл functions.php:

Как скопировать запись или страницу в WordPress(3 способа)

Или приобрести к нему доступ через протокол передачи файлов(FTP) при помощи Filezilla. В любом случае вам необходимо будет добавить в конец файла следующий код:

/** Function for post duplication. Dups appear as drafts. User is redirected to the edit screen*/function rd_duplicate_post_as_draft(){global $wpdb;if(!( isset( $_GET['post']) || isset( $_POST['post']) ||( isset($_REQUEST['action']) && 'rd_duplicate_post_as_draft' == $_REQUEST['action']))) {wp_die('No post to duplicate has been supplied!');}/** Nonce verification*/if(!isset( $_GET['duplicate_nonce']) ||!wp_verify_nonce( $_GET['duplicate_nonce'], basename( __FILE__)))return;/** get the original post id*/$post_id =(isset($_GET['post'])? absint( $_GET['post']): absint( $_POST['post']));/** and all the original post data then*/$post = get_post( $post_id );/** if you don't want current user to be the new post author,* then change next couple of lines to this: $new_post_author = $post->post_author;*/$current_user = wp_get_current_user();$new_post_author = $current_user->ID;/** if post data exists, create the post duplicate*/if (isset( $post ) && $post != null) {/** new post data array*/$args = array('comment_status' => $post->comment_status,'ping_status' => $post->ping_status,'post_author' => $new_post_author,'post_content' => $post->post_content,'post_excerpt' => $post->post_excerpt,'post_name' => $post->post_name,'post_parent' => $post->post_parent,'post_password' => $post->post_password,'post_status' => 'draft','post_title' => $post->post_title,'post_type' => $post->post_type,'to_ping' => $post->to_ping,'menu_order' => $post->menu_order);/** insert the post by wp_insert_post() function*/$new_post_id = wp_insert_post( $args );/** get all current post terms ad set them to the new post draft*/$taxonomies = get_object_taxonomies($post->post_type); // returns array of taxonomy names for post type, ex array("category", "post_tag");foreach ($taxonomies as $taxonomy) {$post_terms = wp_get_object_terms($post_id, $taxonomy, array('fields' => 'slugs'));wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false);}/** duplicate all post meta just in two SQL queries*/$post_meta_infos = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id");if (count($post_meta_infos)!=0) {$sql_query = "INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value) ";foreach ($post_meta_infos as $meta_info) {$meta_key = $meta_info->meta_key;if( $meta_key == '_wp_old_slug' ) continue;$meta_value = addslashes($meta_info->meta_value);$sql_query_sel[]= "SELECT $new_post_id, '$meta_key', '$meta_value'";}$sql_query.= implode(" UNION ALL ", $sql_query_sel);$wpdb->query($sql_query);}/** finally, redirect to the edit post screen for the new draft*/wp_redirect( admin_url( 'post.php?action=edit&post=' . $new_post_id ) );exit;} else {wp_die('Post creation failed, could not find original post: ' . $post_id);}}add_action( 'admin_action_rd_duplicate_post_as_draft', 'rd_duplicate_post_as_draft' );/** Add the duplicate link to action list for post_row_actions*/function rd_duplicate_post_link( $actions, $post ) {if (current_user_can('edit_posts')) {$actions['duplicate'] = '<a href="' . wp_nonce_url('admin.php?action=rd_duplicate_post_as_draft&post=' . $post->ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate</a>';}return $actions;}add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);

Последние две строки включают функция дублирования как для записей, так и для страниц. Если вы решите, что вам нужна эта функцию только для одного или иного, вы можете без проблем удалить соответствующую строку.

Сейчас вы должны увидеть настройка Дублировать вместе с иными возможностями для записей и страниц в соответствующих списках:

Как скопировать запись или страницу в WordPress (3 способа)

Эта функцию дублирования отличается от той, которую мы добавили при помощи плагина выше. Когда вы нажмете на ссылку, вы заметите, что новый черновик открывается в редакторе WordPress, поэтому вы можете без труда сразу начать работу над ним.

Возможно, вы захотите продублировать ваши страницы или записи, чтобы создать шаблоны для будущего контента или сделать резервную копию записей, прежде чем вносить изменения в сайт. Однако независимо от причины есть простые методы сделать это.

Напомним данные три метода клонирования публикации или дублирования страницы в WordPress:

  • Дублируйте содержимое без плагина, используя ссылку Копировать все содержимое в редакторе блоков.
  • Используйте плагин, к примеру Duplicate Page and Post, Duplicate Post или Duplicate Page.
  • Добавьте функция дублирования, отредактировав файл functions.php текущей темы.

Добавить комментарий

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