كيفية تكرار صفحة أو منشور في WordPress
نشرت: 2023-02-12يمكن أن يعني تكرار صفحة أو منشور في WordPress أكثر من مجرد نسخ المحتوى ولصقه. يمكنك أيضًا الاحتفاظ بنموذج الصفحة وبيانات تحسين محركات البحث والصور لتوفير الوقت عند إعادة تصميم موقع الويب الخاص بك أو تحديث المحتوى الخاص بك.
لحسن الحظ ، يمكن أن يكون نسخ الصفحات والمنشورات وكل البيانات المرتبطة بها في WordPress أمرًا سهلاً. هناك طرق بسيطة لإنجاز المهمة ، سواء باستخدام مكون إضافي أو بدونه.
في هذه المقالة ، سنلقي نظرة على كيفية إنشاء نسخة مكررة لصفحة WordPress أو نشرها بأمان ، وتقديم بعض المكونات الإضافية التي يمكن أن تساعد. دعنا نقفز مباشرة!
انسخ صفحة بسهولة في WordPress باستخدام هذه المكونات الإضافية
يعد استنساخ صفحة في WordPress أمرًا بسيطًا للغاية عند استخدام مكون WordPress الإضافي ، لأن كل شيء يتم بشكل صحيح في لوحة المعلومات الخاصة بك. تعد المكونات الإضافية أيضًا الطريقة الأكثر أمانًا لتكرار منشور أو صفحة ، نظرًا لأنك لن تقوم بتعديل رمز موقعك مباشرةً.
إذا كنت تبحث عن الأداة الصحيحة ، فإليك أربعة مكونات إضافية تستحق المراجعة.
1. مشاركة مكررة
يعد Duplicate Post أحد خيارات الانتقال إلى صفحة WordPress واستنساخ النشر. هذا البرنامج المساعد الشهير سهل الاستخدام ، ويستنسخ كل شيء من محتوى الصفحة أو النشر إلى التعليقات المرتبطة. كما يوفر خيار البادئة أو اللاحقة ، للتمييز بين المنشور الأصلي والنسخ.
لتكرار منشور WordPress باستخدام هذه الأداة ، ما عليك سوى:
- قم بتثبيت البرنامج المساعد وتنشيطه.
- في لوحة معلومات WordPress الخاصة بك ، انتقل إلى المنشورات > الكل عند استنساخ المنشورات ، أو الصفحات > الكل عند نسخ الصفحات.
- انتقل إلى الصفحة الأصلية أو المنشور الذي تريد نسخه ، وانقر على استنساخ لتكرارها.
- يمكن تحديد صفحات أو منشورات متعددة ، ويمكنك استنساخها جميعًا مرة واحدة باستخدام إجراءات مجمعة .
2. صفحة مكررة ومشارك
لا تحتوي الصفحة المكررة والمنشور على الكثير من الميزات ، ولكنهما يعوضان ذلك بسرعة. يعد هذا المكون الإضافي خفيف الوزن المكرر أحد أسرع الطرق لاستنساخ منشور أو صفحة في WordPress ، ولن يثقل موقعك بأجراس وصفارات غير ضرورية.
لاستنساخ صفحة أو نشر باستخدام هذا المكون الإضافي ، استخدم الخطوات التالية:
- قم بتثبيت البرنامج المساعد وتنشيطه.
- انتقل إلى المنشورات > الكل أو الصفحات > الكل ، بناءً على ما تريد تكراره.
- تحوم فوق الصفحة أو المنشور الذي تريد استنساخه.
- انقر فوق خيار تكرار .
3. صفحة مكررة
تقدم Duplicate Page بعض الميزات الإضافية التي لا توفرها بعض مكونات النسخ الإضافية الأخرى. سيقوم هذا المكون الإضافي بتكرار المنشورات والصفحات وأنواع المنشورات المخصصة. بالإضافة إلى ذلك ، يمكنك حفظ النسخ الناتجة كمسودات أو معلقة أو عامة أو خاصة.
لاستخدام صفحة مكررة ، ما عليك سوى:
- قم بتثبيت البرنامج المساعد وتنشيطه.
- تكوين إعداداته لتلبية احتياجاتك.
- انتقل إلى Pages > الكل أو المنشورات > الكل للعثور على المحتوى الذي تريد تكراره.
- انقر فوق الخيار Duplicate This .
4. آلة النسخ
ملحق آخر بسيط للاستنساخ هو Post Duplicator. ينشئ هذا الحل نسخة طبق الأصل من أي منشور أو صفحة ، بما في ذلك أنواع المنشورات المخصصة والحقول المخصصة والتصنيفات المخصصة. إنه سريع وسهل الاستخدام ، ولا ينبغي أن يضيف الكثير من الوزن إلى موقعك.
لتكرار المحتوى باستخدام هذه الأداة ، اتبع الخطوات التالية:
- قم بتثبيت البرنامج المساعد وتنشيطه.
- انتقل إلى المنشورات > الكل أو الصفحات > الكل للعثور على المحتوى الذي تريد نسخه.
- تحوم فوق المنشور أو الصفحة.
- انقر فوق خيار Duplicate Page أو Duplicate Post .
تكرار صفحة في WordPress بدون مكون إضافي
بالطبع ، ليس عليك استخدام مكون إضافي لاستنساخ صفحة أو نشر في WordPress. يمكن القيام بذلك يدويًا ، إما عن طريق تحرير ملف funtions.php أو نسخ ولصق الكود ذي الصلة. دعونا نلقي نظرة على كيفية عمل كلتا الطريقتين.
1. تمكين الاستنساخ عبر كود funtions.php
إحدى الطرق اليدوية لاستنساخ صفحة أو منشور WordPress هي تحرير الكود في ملف function.php الخاص بك. على الرغم من أن هذا يمكن أن يكون سهلاً ، إلا أنك تحتاج إلى توخي الحذر وعمل نسخة احتياطية من موقع الويب الخاص بك أولاً.
لتمكين استنساخ المنشورات ، ستحتاج إلى الوصول إلى ملف jobs.php وفتحه للتحرير ، باستخدام بروتوكول نقل الملفات الآمن (FTP) أو أي طريقة أخرى تفضلها. بعد ذلك ستحتاج إلى إضافة مقتطف الشفرة التالي إلى نهاية الملف:
/*
* 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 );
لتمكين الاستنساخ للصفحات أيضًا ، استخدم نفس الكود ولكن استبدل السطر الأخير بـ:
add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);
بعد ذلك ، يمكنك حفظ الملف وإعادة تحميله على الخادم الخاص بك. ثم يمكنك العودة إلى لوحة معلومات WordPress الخاصة بك. يجب أن يظهر زر تكرار الآن عندما تحوم فوق صفحة أو منشور تريد استنساخه.
2. انسخ والصق الشفرة يدويًا لتكرار الصفحة
إذا كنت لا ترغب في تحرير ملف jobs.php الخاص بك ، فيمكنك نسخ ولصق رمز الصفحة أو المنشور الذي تريد استنساخه يدويًا. للقيام بذلك ، سوف تحتاج إلى:
- افتح الصفحة أو المنشور الذي تريد تكراره.
- انقر فوق قائمة المزيد من الأدوات والخيارات .
- حدد محرر التعليمات البرمجية .
- انسخ رمز الصفحة أو المنشور.
- انقر فوق منشور جديد أو صفحة جديدة .
- في المنشور أو الصفحة الجديدة ، افتح محرر التعليمات البرمجية .
- الصق الكود.
- انقر فوق قائمة المزيد من الأدوات والخيارات .
- حدد المحرر المرئي .
- يجب أن تكون الصفحة أو المنشور الجديد الآن نسخة من الصفحة القديمة.
قد تستغرق هذه العملية بعض الوقت ، وستحتاج إلى القيام بذلك بشكل فردي لكل صفحة أو منشور تريد نسخه. لهذا السبب نوصي باستخدام مكون إضافي للصفحة المكررة في WordPress إذا كنت تبحث عن تكرار الكثير من المحتوى.
استمر في التعلم مع WP Engine
يعد تبسيط تجربة WordPress الخاصة بك أمرًا سهلاً من خلال استنساخ الصفحة. هناك الكثير من الطرق الأخرى التي يمكنك من خلالها توفير الوقت أيضًا ، مثل ترحيل الصفحات أو المنشورات بين مواقع WordPress وحتى نسخ بيئات التطوير.
هنا في WP Engine ، نقدم أفضل الموارد للمطورين الراغبين في بناء تجربة رقمية رائعة لعملائهم. تحقق من خططنا للبدء على الفور!