プラグインを使用せずにWordpressでページを複製する方法
公開: 2023-08-17この記事では、プラグインを使わずにWordpressでページを複製する方法を紹介します。 ここでは、それを行うための 3 つの異なる方法について説明します。 ページを手動で複製することも、コード スニペットや専用のプラグインを使用することもできます。
なぜWordPressでページを複製する必要があるのですか
WordPress でページを複製すると、さまざまな目的に使用できます。この機能が役立つシナリオがいくつかあります。
- コンテンツの複製:同様のコンテンツのページのレイアウトと構造をコピーすることで時間を節約します。
- 一貫したデザイン:特定のページ タイプに対して統一した外観を維持します。
- A/B テスト:エンゲージメントやコンバージョンを向上させるために、ページのさまざまなバージョンをテストします。
- 翻訳:ページの翻訳版を作成するには、複製から始めます。
- 長い形式のコンテンツ:テンプレートを維持しながら、独自のコンテンツを追加します。
- イベント ページ:重複したコンテンツを含む同様のイベント ページをすばやく設定します。
- アーカイブと再利用:コンテンツを再利用しながら、オリジナルを保存します。
- バックアップ:大幅な変更を加える前に、バックアップのために複製します。
- カスタム ランディング ページ:キャンペーンに合わせたランディング ページを効率的に作成します。
- 開発テスト:公開前に変更をテストするためにページを複製します。
ページの複製は便利ですが、複製されたコンテンツが目的に合わせて適切にカスタマイズされていることを確認することが重要であることに注意してください。 Web サイト上の重複コンテンツは、特に大幅に変更されていない場合、検索エンジン最適化 (SEO) やユーザー エクスペリエンスに悪影響を与える可能性があります。
Wordpress でページを手動で複製する
Wordpress でページを手動で複製する場合は、既存のページまたは投稿を編集し、右上隅にある三点メニューをクリックするだけです。
「すべてのブロックをコピー」のようなオプションが表示されます。それをクリックするだけで、ページのすべてのコンテンツがクリップボードにコピーされます。
ここで、戻って新しいページを作成し、ページのタイトルを設定し、クリップボードにコピーしたコード (CTRL + V) を貼り付けます。
これで、すべてのコンテンツが新しいページにコピーされ、数回クリックするだけでページが正常に複製されます。
この方法を実行すると、ページのコンテンツのみがコピーされ、ページタイトル、メタディスクリプション、アイキャッチ画像、カテゴリ、タグなどのメタデータはコピーされないことに注意してください。
したがって、これには、以下で共有する 2 番目の方法を使用できます。
プラグインなしでWordpressでページを複製する
ここで、プラグインを使用せず、投稿を複製する投稿またはページの直後に複製ボタンを追加したい場合は、以下のコードを使用できます。
コードをfunction.phpファイルに貼り付けるか、WP コード、コード スニペットなどのコード マネージャー プラグインを使用するだけです。
/* * 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!'); } if ( !isset( $_GET['duplicate_nonce'] ) || !wp_verify_nonce( $_GET['duplicate_nonce'], basename( __FILE__ ) ) ) return; $post_id = (isset($_GET['post']) ? absint( $_GET['post'] ) : absint( $_POST['post'] ) ); $post = get_post( $post_id ); $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' => 'draft', 'post_title' => $post->post_title, 'post_type' => $post->post_type, 'to_ping' => $post->to_ping, 'menu_order' => $post->menu_order ); $new_post_id = wp_insert_post( $args ); $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); } $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); } 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' ); 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);
上記のコードをダウンロードします (右クリックして txt ファイルとして保存します)。
この方法では、専用の重複プラグインを使用する必要はなく、そのためにのみコード スニペットを使用するだけで済みます。
これで、専用の複製プラグインを使用しなくても、上のスクリーンショットに示すように、複製リンクが表示されます。
さらに多くの機能のためにプラグインを使用したい場合は、Wordpress 用の重複したプラグインのいずれかを使用できます。
これで、プラグインを使用せずに Wordpress でページを複製する方法を学びました。 ご不明な点がございましたら、コメント欄でお気軽にお問い合わせください。 詳細については、上記のビデオをご覧いただくことをお勧めします。
このチュートリアルが気に入ったら、YouTube チャンネルに登録することを忘れないでください。