براتی طراح سایت

کپی کردن برگه نوشته در وردپرس❤️‍🔥(باکد – duplicate)

بروزر شده در: اردیبهشت ۱۴۰۴
چکیده و هدف مطلب:
- در لیست نوشته‌ها و برگه‌ها، صفحه‌ی محصولات ووکامرس کنار هر آیتم گزینه‌ی "Duplicate" نمایش داده می‌شود.
کپی کردن برگه نوشته در وردپرس
فهرست مطالب
مرحله  توضیحات  تنظیمات
افزودن کد فایل فانکشن چایلد  چایلد یا اصلی
نوشته‌ها برگه ها وکامرس گزینه “Duplicate” را اضافه میکند بطور خودکار همه محتواها شامل میشه

duplicate page

اموزش کپی کردن برگه ها نوشته ها در سایت وردپرس

کپی کردن برگه ها نوشته ها در وردپرس – این کد یک قابلیت کپی‌سازی (Duplicate) برای نوشته‌ها، برگه‌ها و محصولات ووکامرس به داشبورد مدیریت وردپرس اضافه می‌کند. در ادامه توضیح عملکرد آن را بررسی می‌کنیم.

اهمیت کپی کردن برگه‌ها و نوشته‌ها 

فکرشو بکنید: یه برگه یا نوشته رو با کلی زحمت درست کردید، حالا می‌خواید یه نسخه مشابهش بسازید، مثلاً برای یه محصول جدید یا یه تست ساده. آیا باید از صفر شروع کنید؟ نه دیگه! کپی کردن توی وردپرس مثل یه میان‌بر باحاله که وقتتون رو آزاد می‌کنه و کارتون رو سریع‌تر می‌کنه.

روش های مختلف کپی کردن

روش های زیادی برای کپی کردن برگه و نوشته موجود نیست ! فقط دو روش رایج موجد هست که اولی از دومی بهتر امن تر و سبک تره!

  • قابلیت کپی کاری با کد نویسی⭐⭐⭐⭐⭐
  • قابلیت کپی کاری با افزونه

کپی محصولات در ووکامرس

این قابلیت در ابتدا برای نوشته‌ها (`post`) و برگه‌ها (`page`) فعال بود، اما اکنون برای محصولات ووکامرس (`woocommerce_product_row_actions`) نیز اضافه شده است. این یعنی:
– در صفحه‌ی محصولات ووکامرس نیز همین گزینه در کنار محصولات ظاهر خواهد شد.

کپی برگه


ویژگی‌ها و مشخصات کد

✅ کاربردی و تمیز: این کد مستقیماً با وردپرس و پایگاه داده‌ی آن تعامل دارد، بنابراین بدون وابستگی به افزونه‌های اضافی کار می‌کند.

✅ حفظ اطلاعات متا و دسته‌بندی‌ها: هنگام کپی، تمامی اطلاعات مربوط به پست اصلی، از جمله متادیتاها و دسته‌بندی‌ها، عکس شاخص و… به نسخه‌ی جدید منتقل می‌شود.

✅ سازگار با ووکامرس – برگه – نوشته

✅ یک کلیک = یک نسخه‌ی جدید

✅ برگه‌های فرود (Landing Pages)

✅برگه کپی شده پیش نویس هست و مشکل ایندکس سریع ندارد

✅ کپی برای پست تایپ های اختصاصی

✅ مناسب هر قالب بازاری یا مخزن وردپرس

محل نوشتن کدهای

بهترین مکان های که وردپرس گارهای حرفه ای برای قرار دادن کدهای خود در نظر میگیرند بترتیب به شرح زیر میباشد:

  1. wpcode افزونه ⭐⭐⭐⭐⭐
  2. فایل مربوطه قالب چایلد ⭐⭐⭐⭐
  3. کدهای سفارشی المنتور⭐⭐
  4. فایل اصلی قالب😡

    کد برای اضافه کردن به قالب چایلد :

function add_duplicate_link($actions, $post) {
    $nonce = 'duplicate_post_' . $post->ID;
    $url   = admin_url('edit.php' . ($post->post_type !== 'post' ? '?post_type=' . $post->post_type : '') . '&duplicate=' . $post->ID);
    $actions['duplicate'] = 'Duplicate';
    return $actions;
}

// پشتیبانی از تمام پست‌تایپ‌های عمومی
$post_types = get_post_types(['public' => true], 'names');
foreach ($post_types as $type) {
    add_filter("{$type}_row_actions", 'add_duplicate_link', 10, 2);
}

add_action('load-edit.php', function() {
    if (empty($_GET['duplicate']) || empty($_GET['_wpnonce'])) return;
    $id = intval($_GET['duplicate']);
    if (!wp_verify_nonce($_GET['_wpnonce'], 'duplicate_post_' . $id)) return;
    if (!current_user_can('edit_post', $id)) return;

    $post = get_post($id);
    if (!$post) return;

    $data = [
        'post_title'   => $post->post_title,
        'post_content' => $post->post_content,
        'post_status'  => 'draft',
        'post_type'    => $post->post_type,
        'post_author'  => $post->post_author,
        'post_excerpt' => $post->post_excerpt,
        'post_parent'  => $post->post_parent,
        'menu_order'   => $post->menu_order,
    ];
    $new_id = wp_insert_post($data);
    if (!$new_id) {
        wp_redirect(admin_url('edit.php?post_type=' . $post->post_type . '&duplicated=0'));
        exit;
    }

    // کپی طبقه‌بندی‌ها
    foreach (get_object_taxonomies($post->post_type) as $tax) {
        $terms = wp_get_object_terms($id, $tax, ['fields' => 'ids']);
        if ($terms) wp_set_object_terms($new_id, $terms, $tax);
    }

    // بهینه‌سازی کپی متاها
    $skip = ['_edit_lock', '_edit_last'];
    $meta = get_post_meta($id);
    foreach ($meta as $key => $values) {
        if (in_array($key, $skip)) continue;
        update_post_meta($new_id, $key, maybe_unserialize($values[0]));
    }

    // کپی تصویر شاخص
    if ($thumb = get_post_thumbnail_id($id)) {
        set_post_thumbnail($new_id, $thumb);
    }

    wp_redirect(admin_url('edit.php?post_type=' . $post->post_type . '&duplicated=1'));
    exit;
});

add_action('admin_notices', function() {
    if (isset($_GET['duplicated'])) {
        if ($_GET['duplicated'] == '1') {
            echo 'پست با موفقیت کپی شد.';
        } elseif ($_GET['duplicated'] == '0') {
            echo 'خطا در کپی کردن پست!';
        }
    }
});


افزونه کپی برگه نوشته duplicate page

بدترین حالت ولی آسان ترین حالت اضافه کردن کپی کردن برگه ها نوشته ها در وردپرس – استفاده از پلاگین مربوطه است

مقاله افزایش سرعت المنتور

خدمات پشتیبانی سایت

 

 

۴.۳/۵ - (۶ امتیاز)

3 پاسخ

دیدگاهتان را بنویسید

8 − 6 =