WordPress에서 페이지 또는 게시물을 복제하는 방법
게시 됨: 2023-02-12WordPress에서 페이지나 게시물을 복제하는 것은 단순히 콘텐츠를 복사하여 붙여넣는 것 이상을 의미할 수 있습니다. 웹 사이트를 재설계하거나 콘텐츠를 업데이트할 때 시간을 절약하기 위해 페이지 템플릿, SEO 데이터 및 이미지를 유지할 수도 있습니다.
다행스럽게도 WordPress에서 페이지와 게시물 및 모든 관련 데이터를 쉽게 복제할 수 있습니다. 플러그인을 사용하거나 사용하지 않고 작업을 완료하는 간단한 방법이 있습니다.
이 기사에서는 WordPress 복제 페이지를 안전하게 복제하거나 게시하는 방법을 살펴보고 도움이 될 수 있는 몇 가지 플러그인을 소개합니다. 바로 뛰어들자!
이 플러그인을 사용하여 WordPress에서 페이지를 쉽게 복제
WordPress에서 페이지를 복제하는 것은 WordPress 플러그인을 사용할 때 매우 간단합니다. 모든 것이 대시보드에서 바로 이루어지기 때문입니다. 플러그인은 사이트의 코드를 직접 수정하지 않기 때문에 게시물이나 페이지를 복제하는 가장 안전한 방법이기도 합니다.
올바른 도구를 찾고 있다면 확인해 볼 가치가 있는 4개의 플러그인이 있습니다.
1. 중복 게시물
WordPress 페이지 및 게시물 복제를 위한 이동 옵션 중 하나는 Duplicate Post입니다. 이 인기 있는 플러그인은 사용하기 쉽고 페이지 또는 게시물의 콘텐츠에서 관련 댓글에 이르기까지 모든 것을 복제합니다. 또한 원본 게시물과 복제본을 구별하기 위해 접두사 또는 접미사 옵션을 제공합니다.
이 도구를 사용하여 WordPress 게시물을 복제하려면 다음을 수행하면 됩니다.
- 플러그인을 설치하고 활성화합니다.
- WordPress 대시보드에서 게시물을 복제하는 경우 게시물 > 전체 로 이동하거나 페이지를 복제하는 경우 페이지 > 전체로 이동합니다.
- 복사하려는 원본 페이지 또는 게시물로 이동하고 복제 를 클릭하여 복제합니다.
- 여러 페이지 또는 게시물을 선택할 수 있으며 대량 작업을 사용하여 한 번에 모두 복제할 수 있습니다.
2. 중복 페이지 및 게시물
Duplicate Page and Post에는 많은 기능이 없지만 속도면에서 보완됩니다. 이 가벼운 중복 게시물 플러그인은 WordPress에서 게시물 또는 페이지를 복제하는 가장 빠른 방법 중 하나이며 불필요한 종소리와 휘파람으로 사이트에 부담을 주지 않습니다.
이 플러그인으로 페이지나 게시물을 복제하려면 다음 단계를 따르세요.
- 플러그인을 설치하고 활성화합니다.
- 복제하려는 항목에 따라 Posts > All 또는 Pages > All 로 이동합니다.
- 복제하려는 페이지나 게시물 위로 마우스를 가져갑니다.
- 복제 옵션을 클릭합니다.
3. 중복 페이지
Duplicate Page는 다른 복제 플러그인이 제공하지 않는 몇 가지 추가 기능을 제공합니다. 이 플러그인은 게시물, 페이지 및 사용자 정의 게시물 유형을 복제합니다. 또한 결과 복사본을 초안, 보류 중, 공개 또는 비공개로 저장할 수 있습니다.
Duplicate Page를 사용하려면 다음이 필요합니다.
- 플러그인을 설치하고 활성화합니다.
- 필요에 맞게 설정을 구성합니다.
- 페이지 > 모두 또는 게시물 > 모두 로 이동하여 복제하려는 콘텐츠를 찾습니다.
- 복제 옵션을 클릭합니다.
4. 포스트 복사기
또 다른 간단한 복제 플러그인은 Post Duplicator입니다. 이 솔루션은 사용자 정의 게시물 유형, 사용자 정의 필드 및 사용자 정의 분류를 포함하여 모든 게시물 또는 페이지의 정확한 복제본을 생성합니다. 빠르고 사용하기 쉬우며 사이트에 부담을 주지 않아야 합니다.
이 도구로 콘텐츠를 복제하려면 다음 단계를 따르세요.
- 플러그인을 설치하고 활성화하십시오.
- 게시물 > 모두 또는 페이지 > 모두 로 이동하여 복제할 콘텐츠를 찾습니다.
- 게시물 또는 페이지 위로 마우스를 가져갑니다.
- 페이지 복제 또는 게시물 복제 옵션을 클릭합니다.
플러그인 없이 WordPress에서 페이지 복제
물론 WordPress에서 페이지나 게시물을 복제하기 위해 플러그인을 사용할 필요는 없습니다. funtions.php 파일을 편집하거나 관련 코드를 복사하여 붙여넣어 수동으로 수행할 수도 있습니다. 두 가지 방법이 어떻게 작동하는지 살펴보겠습니다.
1. funtions.php 코드를 통해 복제 활성화
WordPress 페이지 또는 게시물을 복제하는 수동 방법 중 하나는 functions.php 파일에서 코드를 편집하는 것입니다. 이 작업은 쉬울 수 있지만 주의를 기울이고 먼저 웹 사이트를 백업해야 합니다.
게시물 복제를 활성화하려면 functions.php 파일에 액세스하고 보안 파일 전송 프로토콜(FTP) 또는 원하는 다른 방법을 사용하여 편집을 위해 파일을 열어야 합니다. 그런 다음 파일 끝에 다음 코드 스니펫을 추가해야 합니다.
/*
* 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 대시보드로 돌아갈 수 있습니다. 이제 복제하려는 페이지나 게시물 위로 마우스를 가져가면 복제 버튼이 나타납니다.
2. 코드를 수동으로 복사 및 붙여넣기하여 페이지 복제
functions.php 파일을 편집하지 않으려면 복제하려는 페이지 또는 게시물의 코드를 수동으로 복사하여 붙여넣을 수 있습니다. 이렇게 하려면 다음이 필요합니다.
- 복제하려는 페이지나 게시물을 엽니다.
- 추가 도구 및 옵션 메뉴를 클릭합니다.
- 코드 편집기 를 선택합니다.
- 페이지 또는 게시물의 코드를 복사합니다.
- 새 게시물 또는 새 페이지를 클릭합니다.
- 새 게시물 또는 페이지에서 코드 편집기를 엽니다.
- 코드를 붙여넣습니다.
- 추가 도구 및 옵션 메뉴를 클릭합니다.
- 비주얼 편집기 를 선택합니다.
- 새 페이지나 게시물은 이제 이전 페이지의 복제본이어야 합니다.
이 프로세스는 약간의 시간이 걸릴 수 있으며 복사하려는 각 페이지 또는 게시물에 대해 개별적으로 수행해야 합니다. 그렇기 때문에 많은 콘텐츠를 복제하려는 경우 WordPress 복제 페이지 플러그인을 사용하는 것이 좋습니다.
WP 엔진으로 계속 학습
페이지 복제를 통해 WordPress 경험을 간소화할 수 있습니다. WordPress 사이트 간에 페이지 또는 게시물을 마이그레이션하고 개발 환경을 복사하는 등 시간을 절약할 수 있는 다른 방법도 많이 있습니다.
여기 WP Engine에서는 클라이언트를 위한 훌륭한 디지털 경험을 구축하려는 개발자에게 최고의 리소스를 제공합니다. 바로 시작할 계획을 확인하십시오!