2023年にプラグインなしでWordPressでページを複製する方法

WordPressを使用してWebサイトを作成および管理している場合、ある時点で、ページを複製したい場合があります。 すべてのコンテンツをコピーして新しいページに貼り付けるだけでよいと考えているかもしれません。

機能、画像、SEOなどの多くのフォーマットがすべて失われ、やり直す必要があるため、これはある程度しか機能しません。 このトピックの詳細については、この記事をチェックしてください。 WordPressでページを複製する.

さらに、ページを刷新して改善したい場合、既存のページの編集を開始すると、複製を作成する代わりに、比較のポイントがありません。 WordPressでページを複製する必要がある理由が何であれ、それを実行する方法はいくつかあります。

マネージド WordPress ホスティングは、WordPress Web サイトを実行するための堅牢で効率的な環境を提供します。プラグインなしでページを複製するのは簡単な手動作業です。

どちらの要素も、WordPress Web サイトを効率的に管理および維持するための広範な戦略の一部であり、マネージド ホスティングは、ページ複製などの手動のサイト管理タスクを補完するセーフティ ネットを提供します。

プラグインなしでWordPressページをコピーする

プラグインを使用してWordPressページをコピーしたくない場合は、いくつかを変更してみてください コード.

ちょっとしたコーディング

あなたがコーディングの第一人者でなくても心配する必要はありません(私たちのほとんどはそうです)。 少しコーディングすることでWordPressページを複製できますが、それほど難しくはありません。 ここでコードを提供しますので、コピーして貼り付けるだけです。 これを行う方法を説明しましょう。

Functions.phpファイルへのアクセス

プラグインなしでページを複製するには、コーディングメソッドを介して「functions.php」ファイルにアクセスする必要があります。 Functions.phpファイルにアクセスするために使用できる主な方法はXNUMXつあります。

最初の方法はFTPクライアントを使用するため、最初にインストールする必要があります FTP クライアント。 FTPクライアントを起動し、「接続」をクリックして、FTPホストサーバーに接続するためのユーザー名とパスワードを入力します。 次に、「WordPress Root」、「WP Content」、「Themes」、「Current Themes」の順に移動して適切なファイルにアクセスすると、最終的にfunctions.phpにアクセスできます。 次に、ファイルをダウンロードし、必要に応じて編集して、適切な場所にアップロードし直すことができます。

XNUMX番目のメソッドは、functions.phpファイルにアクセスします。 管理者としてWordPressにログインしてコードを変更し、サイドバーの外観エディターに移動して、編集するテーマを選択し、[テーマ]機能(functions.php)を選択します。 「テンプレートセクション」の「テーマファイル」。 これでコードに変更を加えることができ、完了したら「更新」ボタンを押すだけです。

これで、functions.phpファイルにアクセスして、プラグインなしでコードに変更を加える方法がわかりました。 主な目標は、ページを複製することです。 次のステップは、ページを複製する適切なコードを入力することです。 コピーして貼り付けるだけの必要なコードが含まれているので、コーディングについてよく知らなくても心配しないでください。

/**事後複製のための関数。  重複は下書きとして表示されます。  ユーザーは編集画面にリダイレクトされます*/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' =>'draft'、'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); //投稿タイプの分類名の配列を返します。exarray( "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); } / **0つの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)!= XNUMX){$ 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 = addlashes($ 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)); 出口; } 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($ アクション、$ post){if(current_user_can('edit_posts')){$ statement ['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ページをコピーする方法をマスターしました。 ご覧のとおり、XNUMXつのステップが含まれています。 まず、functions.phpファイルにアクセスし、そのコードをコピーしてファイルに貼り付けてから、更新します。 それはそれと同じくらい簡単です、そしてあなたが終わったら、あなたはあなたの元のページの正確な複製を持っているでしょう。

    0コメント

    コメントなし。