WordPress Sayfalarınızı veya Gönderilerinizi Nasıl Çoğaltabilirsiniz?

Herhangi birinin WordPress’teki sayfalarını veya gönderilerini çoğaltması için tek bir neden bulamıyorsanız, muhtemelen sitenizi yeniden tasarlamak zorunda kalmamışsınızdır. Bunu yaptıysanız, sayfaları veya gönderileri kopyalamanın ne kadar yararlı olabileceğini bilirsiniz.

Bu yazıda, yinelenen sayfalar veya gönderiler oluşturmanın faydalarını açıklayacağız ve size bunu yapmanın iki yolunu göstereceğiz: bir eklenti kullanmak ve kod kullanmak.

Neden Yinelenen Sayfalara veya Gönderilere İhtiyacınız Var?

WordPress kullanıcılarının yinelenen sayfalardan veya gönderilerden yararlanabilecekleri en yaygın durumlardan biri, mevcut bir sayfayı yenilemek, yenilemek veya elden geçirmek istedikleri, fakat tüm içeriğini kaybetmek istemedikleri zamandır. Aynı şey yazılar için de geçerli elbette.

“Değişiklikleri yaptıktan sonra yeniden kullanmak için içeriği kopyalayıp yeni bir taslağa yapıştırmanın nesi yanlış?” diye sorabilirsin. Elbette, bu işe yarardı ama bir kere oldukça zaman alıcı olurdu.

Ayrıca ve daha da önemlisi, önceki tüm SEO çabalarınızı etkileyebilir ve sonuç olarak sayfa sıralamanıza zarar verebilir. Bunun nedeni, içeriği kopyalayıp yeniden tasarladığınız bir sayfaya yapıştırdığınızda, SEO açısından yaptığınız her şeyin yanı sıra öne çıkan görseliniz, sayfa şablonlarınız ve diğer ilgili verileriniz kaybolacaktır.

Ayrıca yinelenen sayfalar, örneğin sayfa tasarımınızda birkaç şeyi değiştirmek ve hangisinin daha iyi çalıştığını görmek için eski sürümle karşılaştırmak istediğinizde kullanışlıdır. Bu durum özellikle web sitenizi yeniden tasarlarken içeriğinizin yeni tasarım öğelerinize nasıl uyacağını görmeniz gerektiğinde kullanışlıdır.

Gördüğünüz gibi, sayfanızın veya gönderinizin bir kopyasını veya kopyasını oluşturmanın işe yaradığı birçok durum vardır.

Eklenti Kullanarak Sayfaları veya Gönderileri Çoğaltma

WordPress’te sıklıkla olduğu gibi, en kullanışlı çözümler küçük dostlarımız olan eklentiler biçiminde gelir. Piyasada yinelenen sayfalar ve gönderiler için birçok mükemmel eklenti olsa da, muhtemelen hepsini öne çıkaramayız, bu yüzden en popüler olanı olan Duplicate Post hakkında konuşacağız.

Yinelenen Gönderi

Bu durum indirebileceğiniz ve ücretsiz olarak kullanabileceğiniz üç milyondan fazla aktif yüklemeye sahip temiz, basit ve işlevsel bir eklentidir.

Eklentiyi yükleyip etkinleştirdikten sonra gönderilerinize veya sayfalarınıza gidin ve kopyalamak istediğiniz gönderinin üzerine geldiğinizde bazı yeni seçeneklerin göründüğünü fark edeceksiniz. İki seçenek olacak: Klonla ve Yeni Taslak.

Gönderi seçenekleri Kopyala ve Yeni Taslak

Klonlama seçeneği, düzenlemek veya değiştirmek istediğiniz gönderinin tam bir kopyasını oluşturur. Kopya, gönderiler listesinin başında görünecek ve üzerine tıklayarak onu her zamanki gibi düzenleyebileceksiniz.

Klonlama seçeneği

Yeni Taslak ise sayfanın bir klonunu oluşturur ve ardından hemen sayfa/yazı düzenleyiciyi açar. Gönderide gerekli tüm değişiklikleri yaptıktan sonra Yayınla’ya tıklayın ve canlı olarak inceleyin.

Yeni Taslak seçeneği

Ve gerçekten de hepsi bu kadar. Artık klonlara ihtiyacınız kalmadığında, fareyle üzerine geldiğinizde gönderinin altında görünen Çöp Kutusu bağlantısını tıklayarak bunları hızlıca silebilirsiniz.

Gönderiyi sil

Eklenti Olmadan Sayfaları veya Gönderileri Kopyalama

Eklentiler birçok durumda kesinlikle çok yardımcı olsa da, bazen bir eklentiye başvurmadan ellerimizi kirletmek ve işleri kendi başımıza halletmek isteriz. Bunun nedeni, bilgimizi ve uzmanlığımızı test etmek veya bunu kendi başımıza yapabileceğimizi kendimize göstermek istememiz olabilir. Fakat daha sıklıkla bunun nedeni, halihazırda kurulu düzinelerce eklentimiz olması ve yeni bir eklenti kurmanın her şeyi çok ağırlaştıracağını düşünmemizdir.

Her iki durumda da, yalnızca kod kullanarak bir sayfayı veya gönderiyi çoğaltmak mümkündür. Bir GitHub kullanıcısı, yinelenen gönderiler veya sayfalar oluşturmak için, yalnızca functions.php dosyanıza kopyalamanız gereken temiz bir işlev buldu:

/*
* 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'] = '<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 );
to join this conversation on GitHub. Already have an account? Sign in to comment

Seçtiğiniz bir FTP istemcisini kullanarak doğrudan sunucunuzda yapabilirsiniz, fakat WordPress dosya düzenleyicisini kullanmanızı öneririz.

Burada bu kodun WordPress gönderilerini çoğaltmak için yazıldığını unutmayın. Sayfaları da çoğaltmak istiyorsanız, snippet’teki son satırı ‘post_raw_actions’ yerine ‘page_raw_actions’ yazacak şekilde değiştirmeniz gerekir.

Function.php dosyanıza kodu girdikten sonra, sayfalarınızın ve gönderilerinizin listelendiği (Tüm Yazılar veya Tüm Sayfalar) panonuza gidin. Her şey yolunda giderse, her gönderi veya sayfanın altında Çoğalt diyen yeni bir seçenek olacaktır. Üzerine tıklamak, tıpkı bir eklenti kullanıyormuşsunuz gibi, söz konusu sayfanın veya gönderinin bir klonunu oluşturacaktır.

Çözüm Yolu

Gördüğünüz gibi, yinelenen WordPress sayfaları veya gönderileri oluşturmak, ister bir eklenti kullanıyor olun, ister bunun yerine kod seçiyor olun, aslında çok kolay. Bu seçeneği birçok durumda uygun bulacağınızdan eminiz.

Arada bir kullanılmayan yinelenen gönderileri temizlemeyi unutmayın – dağınıklık bir web sitesi için asla iyi bir şey değildir. Ayrıca gönderileri çoğaltmak için kod kullanmayı düşünüyorsanız, WordPress dosyalarını düzenlerken olması gerektiği gibi web sitenizin yedeklendiğinden emin olun.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Birlikte Büyüyen Bir İş Kurma Fırsatı!

İş birliği yaparak, işinizi yalnızca bir adım öteye taşıyoruz. Daha detaylı bilgi isterseniz mail adresinizi bize iletebilirsiniz.