2023년 플러그인 없이 WordPress에서 페이지를 복제하는 방법

WordPress를 사용하여 웹 사이트를 만들고 관리하는 경우 어느 시점에서 페이지를 복제할 수 있습니다. 모든 콘텐츠를 복사하여 새 페이지에 붙여넣기만 하면 된다고 생각할 수 있습니다.

기능, 이미지 및 SEO와 같은 많은 서식이 모두 손실되고 다시 실행해야 하므로 이는 어느 정도만 작동합니다. 이 주제에 대한 자세한 내용은 다음 문서를 참조하십시오. WordPress에서 페이지 복제.

또한 페이지를 개편하고 개선하려는 경우 복제본을 만드는 대신 기존 페이지를 편집하기 시작하면 비교할 대상이 없습니다. WordPress에서 페이지를 복제해야 하는 이유가 무엇이든 간에 몇 가지 방법이 있습니다.

관리형 WordPress 호스팅은 WordPress 웹사이트를 실행하기 위한 강력하고 효율적인 환경을 제공하며, 플러그인 없이 페이지를 복제하는 것은 간단한 수동 작업입니다.

두 요소 모두 페이지 복제와 같은 수동 사이트 관리 작업을 보완하는 안전망을 제공하는 관리형 호스팅을 통해 WordPress 웹사이트를 효율적으로 관리하고 유지하기 위한 광범위한 전략의 일부입니다.

플러그인 없이 WordPress 페이지 복사

플러그인을 사용하여 WordPress 페이지를 복사하지 않으려면 일부 변경을 시도할 수 있습니다. 암호.

약간의 코딩

코딩 전문가가 아니더라도 걱정할 필요가 없습니다(우리 중 극소수만 그렇습니다). 약간의 코딩을 수행하여 WordPress 페이지를 복제할 수 있으며 그렇게 어렵지 않습니다. 여기에서 코드를 제공하므로 복사하여 붙여넣기만 하면 됩니다. 이를 수행하는 방법을 설명하겠습니다.

Functions.php 파일에 접근하기

플러그인 없이 페이지를 복제하려면 코딩 방법을 통해 “functions.php” 파일에 액세스해야 합니다. functions.php 파일에 액세스하는 데 사용할 수 있는 두 가지 주요 방법이 있습니다.

첫 번째 방법은 FTP 클라이언트를 사용하는 것이므로 먼저 FTP 클라이언트를 설치해야 합니다. FTP 고객. FTP 클라이언트를 시작하고 "연결"을 클릭한 다음 사용자 이름과 암호를 제공하여 FTP 호스트 서버에 연결합니다. 그런 다음 "WordPress Root", "WP Content", "Themes", "Current Themes"로 이동하여 적절한 파일에 액세스할 수 있으며 최종적으로 functions.php에 도달하게 됩니다. 그런 다음 파일을 다운로드하고 필요에 따라 편집한 다음 적절한 위치에 다시 업로드할 수 있습니다.

두 번째 방법은 functions.php 파일에 액세스합니다. WordPress에 관리자로 로그인하여 코드를 변경할 수 있습니다. 그런 다음 사이드바의 모양 편집기로 이동하여 편집하려는 테마를 선택한 다음 " 아래에 있는 테마 기능(functions.php)을 선택합니다. "템플릿 섹션"의 테마 파일"을 참조하십시오. 이제 코드를 변경할 수 있으며 완료되면 "업데이트" 버튼을 누르기만 하면 됩니다.

이제 플러그인 없이 코드를 변경할 수 있도록 functions.php 파일에 액세스하는 방법을 알았습니다. 주요 목표는 페이지를 복제하는 것입니다. 다음 단계는 페이지를 복제할 적절한 코드를 입력하는 것입니다. 복사하여 붙여넣기만 하면 되는 필수 코드가 포함되어 있으므로 코딩에 대해 잘 모른다고 걱정하지 마십시오.

/* * 포스트 복제를 위한 함수.  Dup은 초안으로 나타납니다.  사용자는 편집 화면으로 리디렉션됩니다. */ function rd_duplicate_post_as_draft(){ global $wpdb; 만약에 (!  ( isset( $_GET['post']) || isset( $_POST['post']) || ( isset($_REQUEST['action']) && 'rd_duplicate_post_as_draft' == $_REQUEST['action'] ) ) ) { wp_die('복제할 게시물이 제공되지 않았습니다!'); } /* * 논스 검증 */ if ( !isset( $_GET['duplicate_nonce'] ) || !wp_verify_nonce( $_GET['duplicate_nonce'], basename( __FILE__ ) ) ) return; /* * 원본 게시물 ID 가져오기 */ $post_id = (isset($_GET['post']) ?  absint( $_GET['post'] ) : absint( $_POST['post'] ) ); /* * 그리고 모든 원본 포스트 데이터 */ $post = get_post( $post_id ); /* * 현재 사용자가 새 게시물 작성자가 되는 것을 원하지 않으면 * 다음 두 줄을 다음과 같이 변경합니다. $new_post_author = $post->post_author; */ $current_user = wp_get_current_user(); $new_post_author = $current_user->ID; /* * 게시물 데이터가 존재하는 경우 게시물 중복 생성 */ if (isset( $post ) && $post != null) { /* * 새 게시물 데이터 배열 */ $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' => '초안', 'post_title' => $post->post_title, 'post_type ' => $post->post_type, 'to_ping' => $post->to_ping, 'menu_order' => $post->menu_order ); /* * wp_insert_post() 함수로 게시물 삽입 */ $new_post_id = wp_insert_post( $args ); /* * 모든 현재 게시물 용어를 가져와 새 게시물 초안으로 설정 */ $taxonomies = get_object_taxonomies($post->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); } /* * 두 개의 SQL 쿼리에서 모든 포스트 메타 복제 */ $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 = "$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' ) 계속; $meta_value = addlashes($meta_info->meta_value); $sql_query_sel[]= "$new_post_id, '$meta_key', '$meta_value' 선택"; } $sql_query.= implode(" UNION ALL ", $sql_query_sel); $wpdb->query($sql_query); } /* * 마지막으로 새 초안에 대한 게시물 편집 화면으로 리디렉션 */ wp_redirect( admin_url( 'post.php?action=edit&post=' .  $new_post_id ) ); 출구; } else { wp_die('게시물 작성 실패, 원본 게시물을 찾을 수 없음: ' .  $post_id); } } add_action( 'admin_action_rd_duplicate_post_as_draft', 'rd_duplicate_post_as_draft' ); /* * post_row_actions에 대한 작업 목록에 중복 링크 추가 */ function rd_duplicate_post_link( $actions, $post ) { if (current_user_can('edit_posts')) { $actions['duplicate'] = '  wp_nonce_url('admin.php?action=rd_duplicate_post_as_draft&post=' .  $post->ID, basename(__FILE__), 'duplicate_nonce' ) . 

페이지가 아닌 게시물만 복제하려면 마지막 줄을 다음으로 바꿉니다.

add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );

결론

이제 플러그인 없이 WordPress 페이지를 복사하는 방법을 알게 되었습니다. 보시다시피, 관련된 두 단계만 있습니다. 먼저 functions.php 파일에 액세스하고 해당 코드를 복사하여 파일에 붙여넣은 다음 업데이트합니다. 그렇게 간단하고 작업이 완료되면 원본 페이지의 정확한 복제본을 갖게 됩니다.

    댓글 0개

    코멘트 없음.