WordPressでページを複製する方法

公開: 2020-07-16

WordPressでページを複製する方法を知っていますか? この投稿では、WordPress でページをコピーする方法を学びます。

コンテンツ
1 WordPress でページをコピーする理由
2 WordPress でページを複製する方法は?
2.1プラグインを使用して WordPress でページを複製する
2.2 WordPress でプラグインなしでページを複製する方法は?

WordPress でページをコピーする理由

WordPress でページをコピーする方法を知る必要がある場合は、さまざまな場合があります。

たとえば、古い記事を書き直して新しい投稿を公開したり、販売ページに複数の情報がある場合に有用なコンテンツをコピーしたりできます。

これらのコンテンツを手動でコピーできませんか?という質問があるかもしれません。

もちろん、手動でコピーすることもできます。 ただし、手動コピーでは、 SEO 設定投稿設定関連するメタデータ、アイキャッチ画像はコピーされません。

ワンクリックですべての設定をコピーできれば、時間の節約になりませんか?

WordPressでページを複製する方法を学べば、コンテンツを編集して作業を開始できます.

この投稿では、WordPress でページをコピーする方法を説明します。

WordPressでページを複製する方法は?

プラグインを使用して、またはプラグインを使用せずに、WordPress でページを複製できます。 最初にプラグインのアプローチを見てみましょう。

プラグインを使用して WordPress でページを複製する

まず、WordPress に Yoast Duplicate Post プラグインをインストールして有効にする必要があります。

プラグインをインストールしたら、[ページ] > [すべてのページ]を開きます。

既存のページにCloneおよびNew Draftオプションがあります。

WordPressでページを複製する方法

ページのコピーを作成する場合は、クローンをクリックします。 複製ページを作成し、それを投稿エディターで開いて編集を開始する場合は、[新しい下書き] をクリックします。

同様に、投稿の複製または新しい下書きを作成する場合は、[投稿] > [すべての投稿] に移動し、目的の投稿を選択します。

この機能は、特定のデザインをあるページまたは投稿から別のページにコピーしたい場合や、さまざまなマーケティング キャンペーンに役立つランディング ページをコピーする場合にも、さまざまな方法で役立ちます。

ページまたは投稿を複製するときに、ユーザーの役割を有効にしたり、カスタム投稿タイプを設定したりできます。

以下の画像から、プラグインのさまざまな設定を確認できます。

WordPress でページをコピーする方法 - 何をコピーするか
何をコピーするか

この図のように、最初のタブには何をコピーするかが表示されます。 プラグインによって提供されるデフォルトのオプションがあります。 ただし、好みに応じて特定の設定を有効または無効にすることができます。

権限タブを見てください。

WordPress でページを複製する方法 - パーミッション
権限

権限タブでは、コピーが許可されているデフォルトのロールと、コピー可能なデフォルトの投稿タイプを確認できます。 管理者であれば、これらの設定を変更できます。

それでは、表示タブを見てみましょう。

Yoast 重複投稿設定画面
画面

表示タブには、プラグインのデフォルトの表示設定が一覧表示されます。 以前のタブと同様に、それに応じて変更できます。 設定を変更したら、忘れずに保存してください。

Yoast Duplicate Post だけでなく、 Duplicate Page と PostPost Duplicatorなどの他のプラグインも、公式の WordPress プラグイン リポジトリで同じ目的に使用できます。

プラグインなしで WordPress でページを複製する方法は?

コーディングを使用して、WordPress でページを複製することもできます。

この方法により、プラグインの追加を回避できます。

このコードを functions.php ファイルに追加します。 functions.php ファイルにアクセスするには、ファイル マネージャー、FTP クライアント、または [外観の編集] > [テーマ エディター] > [テーマ機能] を使用できます。

 関数rd_duplicate_post_as_draft(){
グローバル $wpdb;
if (! ( 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__ ) ) )
戻る;

$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 = 配列(
'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
);

$new_post_id = wp_insert_post( $args );

$taxonomies = get_object_taxonomies($post->post_type); // 投稿タイプの分類名の配列を返します。例: array("category", "post_tag");
foreach ($taxonomy を $taxonomy として) {
$post_terms = wp_get_object_terms($post_id, $taxonomy, array('fields' => 'slug'));
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' ) 続行;
$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 ) );
出口;
} そうしないと {
wp_die('投稿の作成に失敗しました。元の投稿が見つかりませんでした: ' . $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="このアイテムを複製" rel="permalink">複製</a>';
}
$アクションを返します。
}

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

以下に示すように、最後の行のフィルター名を変更する場合:

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

このコードを正しく埋め込むと、すべての投稿とページで複製オプションが表示されます。

結論

WordPress でページを複製する方法を学んだことを願っています。 WordPressでページをコピーできるプラグインをいくつか紹介しました。 コードを使用して、プラグインなしでページをコピーすることもできます。 同様の方法で、WordPress で投稿を複製できます。

追加資料

  1. WordPressサイトを削除する方法
  2. ワードプレス 5.5 ベータ 1
  3. Google でウェブサイトのトラフィックを増やす方法