سلام دوستان وقتتون بخیر
من برای duplicate کردن پست خیلی از افزونه هایی که این کار رو انجام میدن رو تست کردم ولی همشون یه مشکلی دارند که قسمت post meta رو در نظر نمیگیرن برای کپی کردن.
یکی دو تا که انجام میدن این کار رو پولی هستن یعنی باید نسخه پروش رو بخریم که داخل سایتای ایرانی نبودن هر چی گشتم.
ممنون میشم راهنمایی کنید که چطوری اینکار رو انجام بدم؟🙂
سلام دوست من 🖐
امیدوارم حالت خوب و عالی باشی✨
برای انجام عملیات کپی پست به همراه متادیتاها (Post Meta) در وردپرس، میتونی اینکارو بکنی
**روش 1: افزونههای رایگان و متنباز
برخی افزونههای متنباز و رایگان وجود دارن از افزونههایی مانند "Duplicate Post" یا "Duplicate Page and Post" میتونی توی مخزن خود وردپرس استفاده کنید. این افزونهها پس از نصب و فعالسازی بهت امکان کپی کردن پست با تمام متادیتاهای اون رو میدن
افزونه "Duplicate Post" یا "Duplicate Page and Post"
پس از فعالسازی افزونه، در لیست پستها و صفحات، گزینه "Duplicate" یا "کپی" برای هر پست به نمایشدر میاد. با کلیک بر روی این گزینه، یک نسخه کپی از پست با تمام متادیتاها ایجاد میشه.
روش 2: استفاده از کد سفارشی:
در صورتی که میخوای کد سفارشی بنویسی تا پستها را به همراه متادیتاها کپی کنه، میتونی از تابعهای وردپرس برای این کار استفاده کنی. به عنوان مثال، میتوانید از تابع wp_insert_post()
و get_post_meta()
برای ایجاد پست جدید با متادیتاها استفاده کنی
این کد مثالی از چگونگی کپی کردن یک پست با تمام متادیتاها هستش
// شناسه پست اصلی که میخواهید کپی کنید
$original_post_id = 123;
// اطلاعات پست اصلی را دریافت کنید
$original_post = get_post($original_post_id);
// تمام متادیتاهای پست اصلی را دریافت کنید
$original_post_meta = get_post_meta($original_post_id);
// اطلاعات پست جدید را آماده کنید (بدون شناسه)
$new_post_data = array(
'post_title' => $original_post->post_title,
'post_content' => $original_post->post_content,
'post_status' => 'draft', // وضعیت مورد نظر (مثلاً draft یا publish)
'post_type' => $original_post->post_type,
);
// پست جدید را ایجاد کنید
$new_post_id = wp_insert_post($new_post_data);
// متادیتاهای پست جدید را تنظیم کنید
foreach ($original_post_meta as $meta_key => $meta_values) {
foreach ($meta_values as $meta_value) {
add_post_meta($new_post_id, $meta_key, $meta_value);
}
}
// نشانگر به شناسه پست جدید منتقل شود
echo "پست جدید ایجاد شد با شناسه: $new_post_id";
این کد به شما اجازه میدهد یک کپی از پست مورد نظر با تمام متادیتاها ایجاد کنید. اطلاعات پست اصلی را با استفاده از تابع get_post()
دریافت کنی و تمام متادیتاها را با get_post_meta()
دریافت کنی و روی پست جدید تنظیم میکنه.
امیدوارم پاسخم بهت کمک کرده باشه ❤️
موفق و پیروز باشی 🤘🌹
@ossvahid
یه عکس آپلود کردم ممنون میشم چک کنید
اگر توجه کنید افزونه ها کپی رو میگیرند ولی فیلدها رو شامل نمیشه و من میخوام کامل کلون رو انجام بده
@lu1362
این قالبی که استفاده میکنم از این پلاگین استفاده کرده
Classified Listing
یکی از بخش هایی که این پلاگین اضافه میکنه همین قسمتیه که توی تصویر گذاشتم
سلام دوست من 🖐
امیدوارم حالت خوب و عالی باشی✨
برای انجام عملیات کپی پست به همراه متادیتاها (Post Meta) در وردپرس، میتونی اینکارو بکنی
**روش 1: افزونههای رایگان و متنباز
برخی افزونههای متنباز و رایگان وجود دارن از افزونههایی مانند "Duplicate Post" یا "Duplicate Page and Post" میتونی توی مخزن خود وردپرس استفاده کنید. این افزونهها پس از نصب و فعالسازی بهت امکان کپی کردن پست با تمام متادیتاهای اون رو میدن
افزونه "Duplicate Post" یا "Duplicate Page and Post"
پس از فعالسازی افزونه، در لیست پستها و صفحات، گزینه "Duplicate" یا "کپی" برای هر پست به نمایشدر میاد. با کلیک بر روی این گزینه، یک نسخه کپی از پست با تمام متادیتاها ایجاد میشه.
روش 2: استفاده از کد سفارشی:
در صورتی که میخوای کد سفارشی بنویسی تا پستها را به همراه متادیتاها کپی کنه، میتونی از تابعهای وردپرس برای این کار استفاده کنی. به عنوان مثال، میتوانید از تابع wp_insert_post()
و get_post_meta()
برای ایجاد پست جدید با متادیتاها استفاده کنی
این کد مثالی از چگونگی کپی کردن یک پست با تمام متادیتاها هستش
// شناسه پست اصلی که میخواهید کپی کنید
$original_post_id = 123;
// اطلاعات پست اصلی را دریافت کنید
$original_post = get_post($original_post_id);
// تمام متادیتاهای پست اصلی را دریافت کنید
$original_post_meta = get_post_meta($original_post_id);
// اطلاعات پست جدید را آماده کنید (بدون شناسه)
$new_post_data = array(
'post_title' => $original_post->post_title,
'post_content' => $original_post->post_content,
'post_status' => 'draft', // وضعیت مورد نظر (مثلاً draft یا publish)
'post_type' => $original_post->post_type,
);
// پست جدید را ایجاد کنید
$new_post_id = wp_insert_post($new_post_data);
// متادیتاهای پست جدید را تنظیم کنید
foreach ($original_post_meta as $meta_key => $meta_values) {
foreach ($meta_values as $meta_value) {
add_post_meta($new_post_id, $meta_key, $meta_value);
}
}
// نشانگر به شناسه پست جدید منتقل شود
echo "پست جدید ایجاد شد با شناسه: $new_post_id";
این کد به شما اجازه میدهد یک کپی از پست مورد نظر با تمام متادیتاها ایجاد کنید. اطلاعات پست اصلی را با استفاده از تابع get_post()
دریافت کنی و تمام متادیتاها را با get_post_meta()
دریافت کنی و روی پست جدید تنظیم میکنه.
امیدوارم پاسخم بهت کمک کرده باشه ❤️
موفق و پیروز باشی 🤘🌹
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟