WordPress'te Bir Sayfayı veya Gönderiyi Çoğaltmak

Yayınlanan: 2021-08-26

Bir WordPress sayfasını, gönderisini veya başka bir içerik türünü çoğaltmanın bir yolunu mu arıyorsunuz?

WordPress içeriğini kolayca çoğaltabilmek, toplu olarak benzer içerik oluşturmaktan eski içeriği güncellemeye, bir tasarımda ince ayar yapmaya ve daha fazlasına kadar her türlü durumda faydalı olabilir.

Ancak çoğu durumda, farklı sayfalar arasında metin kopyalayıp yapıştırmaktan daha fazlasıdır. Oluşturduğunuz içeriğe ek olarak, tasarımını ve kategoriler, etiketler, yazar, özel alanlar ve diğer meta veriler gibi gönderi ayarlarını da korumak isteyebilirsiniz.

Bu gönderide, %100 ücretsiz çözümler kullanarak bir WordPress sayfasını, gönderisini ve daha fazlasını nasıl tamamen çoğaltabileceğiniz konusunda size kapsamlı bir kılavuz sunacağız.

Sonunda, bir düğmeyi tıklayarak sitenizdeki herhangi bir içeriği çoğaltabileceksiniz – hadi başlayalım.

İçindekiler

  • WordPress'te Bir Yazı veya Sayfa Nasıl Çoğaltılır: Üç Yöntem
  • Bir Eklenti Kullanarak Bir WordPress Sayfası Nasıl Çoğaltılır
  • Yoast Yinelenen Gönderi
  • Yinelenen Gönderi
  • WooCommerce
  • Düzenleyiciyi Kullanarak Bir WordPress Sayfası Nasıl Çoğaltılır
  • Blok Düzenleyici (Gutenberg)
  • eleman
  • Bir WordPress Sayfasını Kodla Manuel Olarak Nasıl Çoğaltırsınız?
Tam Web Sitesi Kitleri ile Web Oluşturma Sürecinizi Daha da Hızlandırın

WordPress'te Bir Yazı veya Sayfa Nasıl Çoğaltılır: Üç Yöntem

Bir WordPress sayfasını, gönderisini veya diğer özel gönderi türlerini çoğaltmak için kullanabileceğiniz üç ana yöntem vardır:

  • Eklenti – Bir gönderiyi veya sayfayı kopyalamanın en kolay yolu, birçok özel eklentiden (çoğu ücretsiz olan) birini kullanmaktır.
  • Düzenleyici – içeriği ne kadar kapsamlı bir şekilde çoğaltmak istediğinize bağlı olarak, yalnızca içeriği ve tasarımı kopyalamayı önemsiyorsanız, yalnızca düzenleyiciyi kullanabilirsiniz.
  • Manuel kod – kendi işini kendin yapanlar için, çocuk temanızın function.php dosyasına bazı özel kodlar ekleyebilirsiniz.

Üç yöntemi de ele alacağız – hadi bunları gözden geçirelim…

Bir Eklenti Kullanarak Bir WordPress Sayfası Nasıl Çoğaltılır

Sitenizdeki gönderileri, sayfaları veya diğer içeriği çoğaltmayı kolaylaştıran birçok eklenti vardır.

Bir WooCommerce mağazanız varsa, WooCommerce ürünleri çoğaltmak için kendi yerleşik özelliğini içerir - aşağıda daha fazlası. Bunu yapmazsanız, WordPress.org'da aşağıdakiler dahil birçok ücretsiz eklenti bulacaksınız:

  • Yoast Yinelenen Gönderi
  • Yinelenen Gönderi
  • Yinelenen Sayfa
  • Post Çoğaltıcı
  • Yinelenen Sayfa ve Gönderi

WooCommerce'e ek olarak, yukarıdaki listeden iki ücretsiz eklentiyle nasıl çalıştığını size göstereceğiz:

  • Yoast Duplicate Post çünkü kullanımı çok kolaydır ve mevcut içeriği güncellemek için harika olan benzersiz bir “Yeniden Yaz ve Yeniden Yayınla” özelliği içerir.
  • Yinelenen Gönderi, çünkü bazı alanlarda size daha ayrıntılı kontrol sağlar.

Her iki eklenti de ücretsizdir ve hem Elementor tasarımlarıyla hem de yerel WordPress düzenleyicisiyle oluşturulmuş içerikle çalıştıklarından emin olmak için her ikisini de test ettik. Bunları özellikle test etmemiş olsak da, yukarıdan diğer tüm eklentilerin de Elementor ile çalışacağını düşünüyoruz.

Yoast Yinelenen Gönderi

İlk olarak, Yoast Duplicate Post'a bir göz atalım. Bu eklenti, gönderileri, sayfaları veya diğer herhangi bir özel gönderi türünü çoğaltmanın hızlı ve kolay bir yolunu istiyorsanız harikadır.

İçeriği klonlamanıza izin vermenin yanı sıra, mevcut içeriği güncellemenize yardımcı olan benzersiz bir Yeniden Yazma ve Yeniden Yayınlama özelliği de içerir. Esasen, bu özellik, değişiklik yapmak için içeriği çoğaltmanıza ve ardından, değişiklikleri canlı yapmak istediğinizde çoğaltılan sürümü orijinal sürümle yeniden "birleştirmenize" olanak tanır.

Başlamak için WordPress.org'dan ücretsiz Yoast Duplicate Post eklentisini kurun ve etkinleştirin.

Artık içeriği çoğaltmak için birkaç farklı yolunuz var.

İlk olarak, ana Gönderiler veya Sayfalar listesine gidebilirsiniz. Listedeki bir öğenin üzerine geldiğinizde üç seçenek görürsünüz:

  • Klonla – içeriği çoğaltın ve tarayıcı sekmenizi yazılar/sayfalar listesinde tutun.
  • Yeni Taslak – içeriği çoğaltın ve hemen çalışmaya başlayabilmeniz için çoğaltılan içerik için düzenleyiciyi açın.
  • Yeniden Yaz ve Yeniden Yayınla – bu, yukarıda tartıştığımız gibi eski içeriği güncellemek için kullanışlı bir özelliktir. Temel fark, işiniz bittiğinde içeriği orijinal gönderiyle birleştirmenize izin vermesidir.
yinelenen sayfa-1-sayfadaki seçenekler listesi

En basit yaklaşım, Clone öğesine tıklamaktır. Ardından, yinelenen içerik için listede yeni bir taslak giriş göreceksiniz. Eklenti, kopya sürüm olduğunu size bildirmek için bir "Özelleştirme Taslağı" bildirimi ile işaretler:

İkincisi, içeriği WordPress düzenleyicisinin içinden de çoğaltabilirsiniz. Bu seçenekleri Gönderi/Sayfa kenar çubuğunun Durum ve görünürlük bölümünde bulabilirsiniz:

Son olarak, Gönderiler veya Sayfalar listesinin toplu işlemler açılır menüsünde eklentinin seçeneklerini kullanarak yinelenen gönderileri veya sayfaları toplu olarak da yapabilirsiniz:

  1. Çoğaltmak istediğiniz tüm gönderileri veya sayfaları seçmek için onay kutusunu kullanın.
  2. Açılır menüden çoğaltma yöntemini seçin – Klonla veya Yeniden Yaz ve Yeniden Yayınla .
  3. Uygula'yı tıklayın.

Eklentinin davranışını özelleştirmek istiyorsanız, Ayarlar → Gönderiyi Çoğalt seçeneğine gidebilirsiniz. Bu alan şunları yapmanızı sağlar:

  • Hangi içeriğin kopyalanacağını seçin.
  • Çoğaltılan içeriğin başlığına özel bir önek veya sonek ekleyin.
  • Menüde yinelenen içeriğin nasıl sipariş edileceğini seçin.
  • Çoğaltmaya uygun hale getirilecek gönderi türlerini seçin.
  • Hangi kullanıcı rollerinin içeriği çoğaltma yeteneğine sahip olduğunu seçin.
  • Yinelenen gönderi bağlantılarının/düğmelerinin nerede görüntüleneceğini özelleştirin.
yinelenen sayfa-5-yoast-yinelenen-post-ayarlar-alanı

Yinelenen Gönderi

Yinelenen Gönderi, bir gönderiyi veya sayfayı hızlı bir şekilde çoğaltmayı kolaylaştırması bakımından Yoast Yinelenen Gönderi ile aynı temel işlevi yerine getirir.

Bu eklentinin Yoast Duplicate Post'a göre birkaç avantajı şudur:

  1. Tek tıklamayla bir gönderiyi/sayfayı birden çok kez çoğaltmanıza olanak tanır. Örneğin, ona dört kopya oluşturmasını söyleyebilirsiniz.
  2. Gönderiler arasında hangi içeriği çoğalttığınız konusunda size biraz daha fazla kontrol sağlar.
  3. Yinelenen içerikleri hızla bulmak için yararlı olan, yinelenen içerik için sitenizi tarama özelliği içerir.
  4. Bir alt etki alanındakiler de dahil olmak üzere farklı WordPress çok siteli ağ siteleri arasında içerik kopyalamanıza izin verir (bu özellik 19.98 dolarlık premium eklenti gerektirir).
  5. Size gönderileri sayfalara veya tam tersine dönüştürme seçeneği sunar (ayrıca premium sürüm gerektirir).

Bu özelliklere ihtiyacınız yoksa, daha popüler olduğu ve işi bitirdiği için Yoast Duplicate Post'a bağlı kalmanızı öneririz. Ancak bu özellikleri istiyorsanız, bu dikkate alınması gereken başka bir sağlam seçenektir.

Başlamak için WordPress.org'dan ücretsiz Duplicate Post eklentisini kurun ve etkinleştirin. Etkinleştirdiğiniz anda çalışmaya başlayacaktır.

Gönderiler/Sayfalar listesine gidin ve kopyalamak istediğiniz içerik parçasının üzerine gelin. Kopyala için yeni bir seçenek göreceksiniz. Fareyle bunun üzerine gelirseniz, kaç kopya oluşturulacağını ve hangi ayarların kullanılacağını seçmek için bazı ek ayarları genişletirsiniz (bir saniyede bunlar hakkında daha fazlası):

yinelenen-sayfa-6-yinelenen-post-eklenti

Yoast Duplicate Post'ta olduğu gibi, birden fazla gönderiyi toplu olarak kopyalamak için onay kutularını ve toplu işlemler açılır menüsünü de kullanabilirsiniz.

Eklentinin ayarlarını yapılandırmak için WordPress panonuzdaki yeni Mesajları Kopyala ve Sil sekmesine gidebilirsiniz. Bu, aşağıdakiler dahil tüm ayarları yapılandırabileceğiniz yerdir:

  • Hangi içeriğin kopyalanacağı.
  • Kimler içeriği çoğaltabilir.
  • Çoğaltmanın etkinleştirileceği özel gönderi türleri.
  • Vesaire.

Güzel bir şey, birden çok ayar profili oluşturabilmeniz ve içeriği çoğaltırken hangi yapılandırmayı kullanacağınızı seçebilmenizdir.

Ayarlar alanının en altına giderseniz, sitenizde yinelenen içeriği tarama özelliğini de bulabilirsiniz:

Yine, içeriği çoğaltmanın basit bir yolunu istiyorsanız, Yoast Duplicate Post eklentisine bağlı kalmanızı öneririz. Ancak bu özelliklerden herhangi biri gözünüze çarparsa, Duplicate Post da işe yarar.

WooCommerce

Bir e-ticaret mağazası oluşturmak için WooCommerce kullanıyorsanız, WooCommerce ürünleri çoğaltmak için kendi yerleşik özelliğini içerir - ayrı bir eklenti yüklemenize gerek yoktur.

Bir ürünü çoğaltmak için kontrol panelinizdeki Ürünler alanına gidin. Ardından, çoğaltmak istediğiniz ürünün üzerine gelin ve Çoğalt'ı tıklayın:

Ayrıca, Yayınlama ayarları altındaki Yeni bir taslağa kopyala seçeneğini tıklayarak ürün düzenleyicinin içinden de bir ürünü çoğaltabilirsiniz:

Not – bu seçenekler yalnızca ürünlerde görünür. Gönderileri ve sayfaları çoğaltmak istiyorsanız, yukarıdan eklentilerden birini yüklemeniz gerekir.

Düzenleyiciyi Kullanarak Bir WordPress Sayfası Nasıl Çoğaltılır

Esas olarak bir yazının veya sayfanın içeriğini/tasarımını kopyalamakla ilgileniyorsanız, bazı yerleşik düzenleyici özellikleri sayesinde eklenti olmadan da sorun olmayabilir.

Bu bölümde, yerel blok düzenleyici (Gutenberg) veya Elementor ile oluşturduğunuz bir tasarımı nasıl hızlı bir şekilde çoğaltacağınızı göstereceğiz.

Bu yöntemlerin her ikisinin de yalnızca içeriği ve tasarımı çoğaltacağını unutmamak önemlidir; başlık, kategoriler, etiketler, özel alanlar vb. gibi önemli meta verileri manuel olarak yeniden oluşturmanız gerekir.

Blok Düzenleyici (Gutenberg)

İçeriği blok düzenleyiciden hızlı bir şekilde çoğaltmak için, çoğaltmak istediğiniz gönderi veya sayfa için düzenleyiciyi açarak başlayın.

Menüyü genişletmek için sağ üst köşedeki üç nokta simgesine tıklayın. Ardından, Tüm içeriği kopyala seçeneğini belirleyin:

yinelenen-sayfa-11-yinelenen-içerik-gutenberg

Şimdi yeni bir gönderi veya sayfa oluşturun. Ardından, düzenleyiciye tıklayın ve içeriği yapıştırın. Şunlardan birini yapabilirsiniz:

  • Ctrl + V veya Cmd + V gibi bir klavye kısayolu kullanın.
  • Sağ tıklayın ve yapıştır'ı seçin.

Düzenleyicide orijinal içeriğin tam bir kopyasını görmelisiniz. Ancak, başlığı, kategorileri, etiketleri vb. manuel olarak eklediğinizden emin olmanız gerekir.

eleman

Not – Elementor ile oluşturulmuş sayfaları veya gönderileri yukarıda bahsettiğimiz eklentileri kullanarak çoğaltabilirsiniz. Ancak, esas olarak bir Elementor gönderisinin/sayfasının tasarımını çoğaltmakla ilgileniyorsanız (yazar ve kategoriler gibi diğer meta veriler yerine), bunu Elementor'un şablon sistemini kullanarak yapabilirsiniz.

Bir Elementor sayfasının nasıl kopyalanacağına dair bir kılavuzumuz var, ancak işte temel fikir.

İlk olarak, tasarımınızı Elementor düzenleyici arayüzünden bir şablon olarak kaydedebilirsiniz:

yinelenen sayfa-12-eleman-şablon

Ardından, yeni bir gönderi veya sayfa oluşturabilir ve şablonu Elementor şablon kitaplığından ekleyebilirsiniz.

Tek bir sayfadan fazlasını çoğaltmak istiyorsanız, eksiksiz web sitesi tasarımlarını dışa/içe aktarmak için Elementor'un web sitesi kitleri özelliğini de kullanabilirsiniz.

Kendi Web Sitesi Kitinizi İçe Aktararak Komple Web Sitesi Tasarımınızı Kopyalayın

Elementor içe/dışa aktarma özelliği, kendi yarattıklarınızı içe aktarmanıza ve saniyeler içinde yeni bir web sitesi oluşturmanıza olanak tanır. Birden fazla proje için kullanılabilecek bir plan oluşturun veya en sevdiğiniz web tasarımını yeniden kullanın. Ardından, tüm web sitesini dışa aktarın ve diğer projelerinize uygulayın.

Kendi tasarımınızı kullanabilir veya tasarımcı yapımı web sitesi kitleri kitaplığımızdan seçim yapabilirsiniz. Basitçe web sitenize uygulayın, içerik ekleyin ve kendiniz yapın.

Bir WordPress Sayfasını Kodla Manuel Olarak Nasıl Çoğaltırsınız?

Kendin yap (DIY) yaklaşımını tercih ederseniz, bazı özel kodlar kullanarak kendi yinelenen sayfa işlevinizi de oluşturabilirsiniz. Bu yöntem, sitenize başka bir eklenti yükleme ihtiyacını ortadan kaldırmanın ötesinde, eklenti yolu üzerinde herhangi bir fayda sağlamaz.

Ancak, başka bir eklentiden kaçınmak sizin için önemliyse, bu yaklaşım iyidir ve normal editör içeriği ve Elementor ile çalışır.

Bu kodu kullanmak için ya temanızın function.php dosyasına ya da Code Snippets gibi bir kod yönetimi eklentisine eklemeniz gerekir. Bunu function.php dosyasına eklerseniz, bir alt tema kullandığınızdan emin olun.

 <?php /* * 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'] = 'ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate'; } return $actions; } add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 ); <code readonly="true">&lt;?php /* * 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[&#39;post&#39;]) || isset( $_POST[&#39;post&#39;]) || ( isset($_REQUEST[&#39;action&#39;]) &amp;&amp; &#39;rd_duplicate_post_as_draft&#39; == $_REQUEST[&#39;action&#39;] ) ) ) { wp_die(&#39;No post to duplicate has been supplied!&#39;); } /* * Nonce verification */ if ( !isset( $_GET[&#39;duplicate_nonce&#39;] ) || !wp_verify_nonce( $_GET[&#39;duplicate_nonce&#39;], basename( __FILE__ ) ) ) return; /* * get the original post id */ $post_id = (isset($_GET[&#39;post&#39;]) ? absint( $_GET[&#39;post&#39;] ) : absint( $_POST[&#39;post&#39;] ) ); /* * and all the original post data then */ $post = get_post( $post_id ); /* * if you don&#39;t want current user to be the new post author, * then change next couple of lines to this: $new_post_author = $post-&gt;post_author; */ $current_user = wp_get_current_user(); $new_post_author = $current_user-&gt;ID; /* * if post data exists, create the post duplicate */ if (isset( $post ) &amp;&amp; $post != null) { /* * new post data array */ $args = array( &#39;comment_status&#39; =&gt; $post-&gt;comment_status, &#39;ping_status&#39; =&gt; $post-&gt;ping_status, &#39;post_author&#39; =&gt; $new_post_author, &#39;post_content&#39; =&gt; $post-&gt;post_content, &#39;post_excerpt&#39; =&gt; $post-&gt;post_excerpt, &#39;post_name&#39; =&gt; $post-&gt;post_name, &#39;post_parent&#39; =&gt; $post-&gt;post_parent, &#39;post_password&#39; =&gt; $post-&gt;post_password, &#39;post_status&#39; =&gt; &#39;draft&#39;, &#39;post_title&#39; =&gt; $post-&gt;post_title, &#39;post_type&#39; =&gt; $post-&gt;post_type, &#39;to_ping&#39; =&gt; $post-&gt;to_ping, &#39;menu_order&#39; =&gt; $post-&gt;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-&gt;post_type); // returns array of taxonomy names for post type, ex array(&quot;category&quot;, &quot;post_tag&quot;); foreach ($taxonomies as $taxonomy) { $post_terms = wp_get_object_terms($post_id, $taxonomy, array(&#39;fields&#39; =&gt; &#39;slugs&#39;)); wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false); } /* * duplicate all post meta just in two SQL queries */ $post_meta_infos = $wpdb-&gt;get_results(&quot;SELECT meta_key, meta_value FROM $wpdb-&gt;postmeta WHERE post_id=$post_id&quot;); if (count($post_meta_infos)!=0) { $sql_query = &quot;INSERT INTO $wpdb-&gt;postmeta (post_id, meta_key, meta_value) &quot;; foreach ($post_meta_infos as $meta_info) { $meta_key = $meta_info-&gt;meta_key; if( $meta_key == &#39;_wp_old_slug&#39; ) continue; $meta_value = addslashes($meta_info-&gt;meta_value); $sql_query_sel[]= &quot;SELECT $new_post_id, &#39;$meta_key&#39;, &#39;$meta_value&#39;&quot;; } $sql_query.= implode(&quot; UNION ALL &quot;, $sql_query_sel); $wpdb-&gt;query($sql_query); } /* * finally, redirect to the edit post screen for the new draft */ wp_redirect( admin_url( &#39;post.php?action=edit&amp;post=&#39; . $new_post_id ) ); exit; } else { wp_die(&#39;Post creation failed, could not find original post: &#39; . $post_id); } } add_action( &#39;admin_action_rd_duplicate_post_as_draft&#39;, &#39;rd_duplicate_post_as_draft&#39; ); /* * Add the duplicate link to action list for post_row_actions */ function rd_duplicate_post_link( $actions, $post ) { if (current_user_can(&#39;edit_posts&#39;)) { $actions[&#39;duplicate&#39;] = &#39;ID, basename(__FILE__), &#39;duplicate_nonce&#39; ) . &#39;&quot; title=&quot;Duplicate this item&quot; rel=&quot;permalink&quot;&gt;Duplicate&#39;; } return $actions; } add_filter( &#39;post_row_actions&#39;, &#39;rd_duplicate_post_link&#39;, 10, 2 );</code> <?php /* * 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'] = 'ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate'; } return $actions; } add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );
			

Varsayılan olarak snippet, hem gönderiler hem de sayfalar için çoğaltmayı etkinleştirir. Yalnızca biri veya diğeri için etkinleştirmek istiyorsanız, kod parçacığının altındaki page_row_actions veya post_row_actions filtresini kaldırabilirsiniz.

Sayfaları ve Gönderileri Çoğaltarak Web Oluşturma Sürecinizi İyileştirin

Bir WordPress sayfasını, gönderisini veya başka bir gönderi türünü çoğaltabilmek, bir WordPress sitesinde çalışırken çok kullanışlıdır.

Bu gönderide, içeriği çoğaltmak için kullanabileceğiniz üç farklı yöntem paylaştık.

Çoğu insan için bir gönderiyi veya sayfayı tamamen klonlamanın en kolay yolu ücretsiz Yoast Duplicate Post eklentisidir. Hemen çalışmaya başlar ve blok düzenleyici (Gutenberg), Elementor ve Classic TinyMCE düzenleyici ile çalışır. Ayrıca, sayfalardan gönderilere ve kullanıyor olabileceğiniz tüm özel gönderi türlerine kadar tüm gönderi türleriyle çalışır.

Bir WooCommerce mağazanız varsa, ürünleri çoğaltmak için WooCommerce'in yerleşik özelliğini de kullanabilirsiniz. Veya başka bir eklenti yüklememeyi tercih ederseniz sitenize bazı özel kodlar ekleyebilirsiniz.

Son olarak, yalnızca bir gönderinin içeriğini/tasarımını kopyalamanız gerekiyorsa, Elementor'un şablon sistemini kullanabilir veya tüm içeriği kopyalamak için blok düzenleyicinin seçeneğini kullanabilirsiniz.

Gitmeden önce kısa bir hatırlatma. SEO'nuzu olumsuz etkileyebileceği için çoğu durumda yinelenen içerik yayınlamak istemezsiniz. Bu nedenle, bir sayfayı içeriğini değiştirmeden kopyalıyorsanız (belki de yalnızca URL'yi değiştirmek için), işiniz bittiğinde orijinal sayfayı yeniden yönlendirmeyi düşünebilirsiniz.

Bir WordPress sayfasını veya gönderisini nasıl çoğaltacağınız hakkında hala sorularınız mı var? Yorumlar bölümünde bize bildirin.