วิธีทำซ้ำหน้าหรือโพสต์ใน WordPress
เผยแพร่แล้ว: 2021-08-26กำลังค้นหาวิธีทำซ้ำหน้า WordPress โพสต์ หรือเนื้อหาประเภทอื่นอยู่ใช่ไหม
ความสามารถในการทำซ้ำเนื้อหา WordPress ได้อย่างง่ายดายจะมีประโยชน์ในทุกสถานการณ์ ตั้งแต่การสร้างเนื้อหาที่คล้ายกันจำนวนมากไปจนถึงการอัปเดตเนื้อหาที่เก่ากว่า ไปจนถึงการปรับแต่งการออกแบบและอีกมากมาย
ในหลายกรณี มันเป็นมากกว่าแค่การคัดลอกและวางข้อความระหว่างหน้าต่างๆ นอกจากเนื้อหาที่คุณสร้างแล้ว คุณอาจต้องการรักษาการออกแบบและการตั้งค่าของโพสต์ เช่น หมวดหมู่ แท็ก ผู้เขียน ฟิลด์ที่กำหนดเอง และข้อมูลเมตาอื่นๆ
ในโพสต์นี้ เราจะให้คำแนะนำที่ครอบคลุมเกี่ยวกับวิธีการทำซ้ำหน้า โพสต์ และอื่นๆ ของ WordPress โดยสมบูรณ์โดยใช้โซลูชันฟรี 100%
ในตอนท้าย คุณจะสามารถทำซ้ำเนื้อหาใดๆ บนไซต์ของคุณด้วยการคลิกปุ่มเพียงปุ่มเดียว เริ่มกันเลย
สารบัญ
- วิธีทำซ้ำโพสต์หรือเพจใน WordPress: สามวิธี
- วิธีทำซ้ำหน้า WordPress โดยใช้ปลั๊กอิน
- โพสต์ซ้ำ Yoast
- โพสต์ซ้ำ
- WooCommerce
- วิธีทำซ้ำหน้า WordPress โดยใช้ตัวแก้ไข
- ตัวแก้ไขบล็อก (Gutenberg)
- ธาตุ
- วิธีทำซ้ำหน้า WordPress ด้วยตนเองด้วยรหัส
วิธีทำซ้ำโพสต์หรือเพจใน WordPress: สามวิธี
มีสามวิธีหลักที่คุณสามารถใช้เพื่อทำซ้ำหน้า WordPress โพสต์หรือประเภทโพสต์ที่กำหนดเองอื่น ๆ :
- ปลั๊กอิน – วิธีที่ง่ายที่สุดในการทำซ้ำโพสต์หรือเพจคือการใช้หนึ่งในปลั๊กอินเฉพาะที่มีอยู่มากมาย (ส่วนใหญ่ฟรี)
- ตัวแก้ไข – ขึ้นอยู่กับว่าคุณต้องการทำซ้ำเนื้อหาอย่างละเอียดเพียงใด คุณอาจใช้เพียงตัวแก้ไขได้หากคุณสนใจเฉพาะการทำซ้ำเนื้อหาและการออกแบบ
- รหัสด้วยตนเอง – สำหรับผู้ที่ทำด้วยตัวเอง คุณสามารถเพิ่มรหัสที่กำหนดเองลงในไฟล์ functions.php ของธีมลูกของคุณ
เราจะครอบคลุมทั้งสามวิธี – มาดูกัน…
วิธีทำซ้ำหน้า WordPress โดยใช้ปลั๊กอิน
มีปลั๊กอินจำนวนมากที่ช่วยให้ทำซ้ำโพสต์ หน้า หรือเนื้อหาอื่น ๆ บนไซต์ของคุณได้ง่าย
หากคุณมีร้านค้า WooCommerce WooCommerce จะรวมคุณสมบัติในตัวของมันเองเพื่อทำซ้ำผลิตภัณฑ์ – เพิ่มเติมเกี่ยวกับด้านล่าง และหากคุณไม่มี คุณจะพบปลั๊กอินฟรีมากมายที่ WordPress.org รวมถึงสิ่งต่อไปนี้:
- โพสต์ซ้ำ Yoast
- โพสต์ซ้ำ
- หน้าซ้ำ
- โพสต์โรเนียว
- หน้าซ้ำและโพสต์
นอกจาก WooCommerce แล้ว เราจะแสดงให้คุณเห็นว่ามันทำงานอย่างไรกับปลั๊กอินฟรีสองตัวจากรายการด้านบน:
- Yoast Duplicate Post เพราะมันใช้งานง่ายมาก และมีฟีเจอร์ “เขียนใหม่ & เผยแพร่ซ้ำ” ที่เป็นเอกลักษณ์ ซึ่งยอดเยี่ยมสำหรับการอัปเดตเนื้อหาที่มีอยู่
- โพสต์ซ้ำ เพราะมันให้การควบคุมที่ละเอียดยิ่งขึ้นในบางพื้นที่
ปลั๊กอินทั้งสองนั้นฟรีและเรายังทดสอบทั้งสองเพื่อให้แน่ใจว่าใช้งานได้กับทั้งการออกแบบ Elementor และเนื้อหาที่สร้างด้วยโปรแกรมแก้ไข WordPress ดั้งเดิม เราคิดว่าปลั๊กอินอื่นๆ ทั้งหมดจากด้านบนจะทำงานร่วมกับ Elementor ได้เช่นกัน แม้ว่าเราจะไม่ได้ทดสอบปลั๊กอินเหล่านั้นโดยเฉพาะก็ตาม
โพสต์ซ้ำ Yoast
ก่อนอื่น มาดู Yoast Duplicate Post กันก่อน ปลั๊กอินนี้ดีมากหากคุณต้องการวิธีที่ง่ายและรวดเร็วในการทำซ้ำโพสต์ เพจ หรือประเภทโพสต์ที่กำหนดเองอื่นๆ
นอกจากจะให้คุณลอกแบบเนื้อหาแล้ว ยังมีฟีเจอร์เขียนใหม่และเผยแพร่ซ้ำที่ไม่เหมือนใคร ซึ่งจะช่วยคุณในการอัปเดตเนื้อหาที่มีอยู่ โดยพื้นฐานแล้ว คุณลักษณะนี้ช่วยให้คุณทำซ้ำเนื้อหาเพื่อทำการเปลี่ยนแปลง จากนั้น "รวม" เวอร์ชันที่ทำซ้ำกลับเป็นเวอร์ชันดั้งเดิมเมื่อคุณต้องการทำการเปลี่ยนแปลงจริง
ในการเริ่มต้น ให้ติดตั้งและเปิดใช้งานปลั๊กอิน Yoast Duplicate Post ฟรีจาก WordPress.org
ตอนนี้ คุณมีวิธีต่างๆ สองสามวิธีในการทำซ้ำเนื้อหา
ก่อนอื่น คุณสามารถไปที่รายการ โพสต์ หลักหรือ เพจ หากคุณวางเมาส์เหนือรายการในรายการ คุณจะเห็นสามตัวเลือก:
- โคลน – ทำซ้ำเนื้อหาและเก็บแท็บเบราว์เซอร์ของคุณไว้ในรายการโพสต์/เพจ
- แบบ ร่างใหม่ – ทำซ้ำเนื้อหาและเปิดโปรแกรมแก้ไขสำหรับเนื้อหาที่ทำซ้ำ เพื่อให้คุณสามารถเริ่มทำงานได้ทันที
- เขียนซ้ำและเผยแพร่ซ้ำ – นี่เป็นคุณสมบัติที่มีประโยชน์สำหรับการอัปเดตเนื้อหาเก่า ดังที่เราได้กล่าวไว้ข้างต้น ความแตกต่างที่สำคัญคือมันจะช่วยให้คุณรวมเนื้อหากลับเข้าไปในโพสต์ต้นฉบับเมื่อคุณทำเสร็จแล้ว
วิธีที่ง่ายที่สุดคือเพียงคลิก โคลน จากนั้น คุณจะเห็นรายการแบบร่างใหม่สำหรับเนื้อหาที่ซ้ำกันปรากฏในรายการ ปลั๊กอินจะทำเครื่องหมายด้วยข้อความแจ้ง "แบบร่างการปรับแต่ง" เพื่อแจ้งให้คุณทราบว่าเป็นเวอร์ชันที่ซ้ำกัน:
ประการที่สอง คุณยังสามารถทำซ้ำเนื้อหาจากภายในโปรแกรมแก้ไข WordPress คุณจะพบตัวเลือกเหล่านี้ในส่วน สถานะและการเปิดเผย ของแถบด้านข้าง โพสต์/หน้า :
สุดท้าย คุณยังสามารถทำซ้ำโพสต์หรือเพจจำนวนมากได้โดยใช้ตัวเลือกของปลั๊กอินในการดำเนินการแบบกลุ่มแบบเลื่อนลงของรายการ โพสต์ หรือ เพจ :
- ใช้ช่องทำเครื่องหมายเพื่อเลือกโพสต์หรือเพจทั้งหมดที่คุณต้องการทำซ้ำ
- เลือกวิธีการทำซ้ำจากเมนูแบบเลื่อนลง – โคลน หรือ เขียนใหม่และเผยแพร่ซ้ำ
- คลิก สมัคร
หากคุณต้องการปรับแต่งการทำงานของปลั๊กอิน คุณสามารถไปที่ การ ตั้งค่า → ทำซ้ำโพสต์ พื้นที่นี้ช่วยให้คุณ:
- เลือกเนื้อหาที่จะทำซ้ำ
- เพิ่มคำนำหน้าหรือคำต่อท้ายที่กำหนดเองให้กับชื่อของเนื้อหาที่ทำซ้ำ
- เลือกวิธีสั่งซื้อเนื้อหาซ้ำในเมนู
- เลือกประเภทโพสต์เพื่อให้มีสิทธิ์ทำซ้ำ
- เลือกบทบาทของผู้ใช้ที่สามารถทำสำเนาเนื้อหาได้
- กำหนดตำแหน่งที่จะแสดงลิงก์/ปุ่มโพสต์ที่ซ้ำกัน
โพสต์ซ้ำ
Duplicate Post ให้บริการฟังก์ชันพื้นฐานเดียวกันกับ Yoast Duplicate Post ซึ่งจะทำให้การทำซ้ำโพสต์หรือเพจทำได้ง่ายและรวดเร็ว
ข้อดีบางประการของปลั๊กอินนี้เหนือ Yoast Duplicate Post คือ:
- ให้คุณทำซ้ำโพสต์/หน้าหลายครั้งได้ด้วยคลิกเดียว ตัวอย่างเช่น คุณสามารถบอกให้สร้างสำเนาซ้ำกันสี่ชุด
- ให้คุณควบคุมได้มากขึ้นว่าเนื้อหาใดที่คุณทำซ้ำระหว่างโพสต์
- มีคุณลักษณะในการสแกนไซต์ของคุณเพื่อหาเนื้อหาที่ซ้ำกัน ซึ่งมีประโยชน์สำหรับการค้นหาเนื้อหาที่ซ้ำกันอย่างรวดเร็ว
- ให้คุณคัดลอกเนื้อหาระหว่างไซต์เครือข่ายหลายไซต์ของ WordPress รวมถึงไซต์ที่อยู่ในโดเมนย่อย (แม้ว่าคุณลักษณะนี้ต้องใช้ปลั๊กอินพรีเมียม $19.98)
- ให้ตัวเลือกแก่คุณในการแปลงโพสต์เป็นเพจและในทางกลับกัน (ต้องใช้เวอร์ชันพรีเมียมด้วย)
หากคุณไม่ต้องการคุณสมบัติเหล่านั้น เราขอแนะนำให้ใช้ Yoast Duplicate Post เนื่องจากเป็นที่นิยมมากกว่าและช่วยให้งานสำเร็จลุล่วง แต่ถ้าคุณต้องการคุณสมบัติเหล่านั้น นี่เป็นอีกตัวเลือกที่ดีที่ควรพิจารณา
ในการเริ่มต้น ให้ติดตั้งและเปิดใช้งานปลั๊กอิน Duplicate Post ฟรีจาก WordPress.org ทันทีที่คุณเปิดใช้งาน มันจะเริ่มทำงาน
ไปที่รายการ โพสต์/เพจ แล้ววางเมาส์เหนือเนื้อหาที่คุณต้องการทำซ้ำ คุณจะเห็นตัวเลือกใหม่ในการ คัดลอก หากคุณวางเมาส์เหนือจุดนั้น คุณจะขยายการตั้งค่าเพิ่มเติมบางอย่างเพื่อเลือกจำนวนสำเนาที่จะสร้างและการตั้งค่าที่จะใช้ (เพิ่มเติมเกี่ยวกับสิ่งเหล่านั้นในอีกไม่กี่วินาที):
เช่นเดียวกับ Yoast Duplicate Post คุณยังสามารถใช้ช่องทำเครื่องหมายและการดำเนินการแบบกลุ่มแบบเลื่อนลงเพื่อคัดลอกหลายโพสต์จำนวนมาก
หากต้องการกำหนดการตั้งค่าปลั๊กอิน คุณสามารถไปที่แท็บ คัดลอกและลบโพสต์ ใหม่ในแดชบอร์ด WordPress ของคุณ ที่นี่คุณสามารถกำหนดการตั้งค่าทั้งหมดรวมถึง:
- เนื้อหาใดที่จะทำซ้ำ
- ใครสามารถทำซ้ำเนื้อหา
- ประเภทโพสต์ที่กำหนดเองใดที่จะเปิดใช้งานการทำซ้ำ
- เป็นต้น
ข้อดีอย่างหนึ่งคือคุณสามารถสร้างโปรไฟล์การตั้งค่าได้หลายโปรไฟล์และเลือกการกำหนดค่าที่จะใช้เมื่อคุณทำซ้ำเนื้อหา
หากคุณเลื่อนไปที่ด้านล่างของพื้นที่การตั้งค่า คุณจะพบคุณลักษณะสำหรับสแกนหาเนื้อหาที่ซ้ำกันในไซต์ของคุณ:
อีกครั้ง หากคุณต้องการวิธีง่ายๆ ในการทำซ้ำเนื้อหา เราขอแนะนำให้ใช้ปลั๊กอิน Yoast Duplicate Post แต่ถ้าคุณสมบัติเหล่านี้เข้าตาคุณ Duplicate Post ก็ทำงานได้ดีเช่นกัน
WooCommerce
หากคุณใช้ WooCommerce เพื่อสร้างร้านค้าอีคอมเมิร์ซ WooCommerce มีคุณลักษณะในตัวสำหรับผลิตภัณฑ์ที่ซ้ำกัน – ไม่จำเป็นต้องติดตั้งปลั๊กอินแยกต่างหาก
หากต้องการทำซ้ำผลิตภัณฑ์ ให้ไปที่พื้นที่ ผลิตภัณฑ์ ในแดชบอร์ดของคุณ จากนั้น วางเมาส์เหนือผลิตภัณฑ์ที่คุณต้องการทำซ้ำ แล้วคลิก ทำสำเนา :
คุณยังสามารถทำซ้ำผลิตภัณฑ์จากภายในตัวแก้ไขผลิตภัณฑ์ได้โดยคลิกตัวเลือก คัดลอกไปยังแบบร่างใหม่ ภายใต้การตั้งค่า เผยแพร่ :
หมายเหตุ – ตัวเลือกเหล่านี้จะปรากฏบนผลิตภัณฑ์เท่านั้น หากคุณต้องการทำซ้ำโพสต์และเพจ คุณจะต้องติดตั้งปลั๊กอินตัวใดตัวหนึ่งจากด้านบน
วิธีทำซ้ำหน้า WordPress โดยใช้ตัวแก้ไข
หากคุณกังวลเกี่ยวกับการทำซ้ำเนื้อหา/การออกแบบของโพสต์หรือเพจเป็นหลัก คุณอาจสบายดีโดยไม่ต้องใช้ปลั๊กอิน ต้องขอบคุณคุณสมบัติตัวแก้ไขในตัวบางอย่าง
ในส่วนนี้ เราจะแสดงวิธีทำซ้ำการออกแบบที่คุณสร้างอย่างรวดเร็วด้วยโปรแกรมแก้ไขบล็อกแบบเนทีฟ (Gutenberg) หรือ Elementor
โปรดทราบว่าทั้งสองวิธีนี้จะทำซ้ำเฉพาะเนื้อหาและการออกแบบเท่านั้น คุณจะต้องสร้างข้อมูลเมตาที่สำคัญใดๆ ใหม่ด้วยตนเอง เช่น ชื่อเรื่อง หมวดหมู่ แท็ก ฟิลด์ที่กำหนดเอง ฯลฯ
ตัวแก้ไขบล็อก (Gutenberg)
หากต้องการทำซ้ำเนื้อหาอย่างรวดเร็วจากตัวแก้ไขบล็อก ให้เริ่มโดยเปิดตัวแก้ไขสำหรับโพสต์หรือเพจที่คุณต้องการทำซ้ำ
คลิกไอคอน จุดสามจุด ที่มุมขวาบนเพื่อขยายเมนู จากนั้นเลือกตัวเลือกเพื่อ คัดลอกเนื้อหาทั้งหมด :
ตอนนี้สร้างโพสต์หรือหน้าใหม่ จากนั้นคลิกเข้าไปในตัวแก้ไขและวางเนื้อหา คุณสามารถ:
- ใช้แป้นพิมพ์ลัด เช่น Ctrl + V หรือ Cmd + V
- คลิกขวาและเลือกวาง
คุณควรเห็นสำเนาของเนื้อหาต้นฉบับในเครื่องมือแก้ไข อย่างไรก็ตาม คุณจะต้องแน่ใจว่าได้เพิ่มชื่อเรื่อง หมวดหมู่ แท็ก ฯลฯ ด้วยตนเอง
ธาตุ
หมายเหตุ – คุณสามารถทำซ้ำหน้าหรือโพสต์ที่สร้างด้วย Elementor โดยใช้ปลั๊กอินที่เรากล่าวถึงข้างต้น แต่ถ้าคุณกังวลเกี่ยวกับการทำซ้ำการออกแบบโพสต์/เพจของ Elementor (แทนที่จะเป็นข้อมูลเมตาอื่น ๆ เช่นผู้เขียนและหมวดหมู่) คุณสามารถทำได้โดยใช้ระบบเทมเพลตของ Elementor
เรามีคำแนะนำเกี่ยวกับวิธีการทำซ้ำหน้า Elementor แต่นี่คือแนวคิดพื้นฐาน
ขั้นแรก คุณสามารถบันทึกการออกแบบของคุณเป็นเทมเพลตจากอินเทอร์เฟซตัวแก้ไข Elementor:
จากนั้น คุณสามารถสร้างโพสต์หรือเพจใหม่และแทรกเทมเพลตจากไลบรารีเทมเพลต Elementor
หากคุณต้องการทำซ้ำมากกว่าหน้าเดียว คุณสามารถใช้คุณลักษณะชุดเว็บไซต์ของ Elementor เพื่อส่งออก/นำเข้าการออกแบบเว็บไซต์ที่สมบูรณ์
คุณสมบัตินำเข้า/ส่งออก Elementor ช่วยให้คุณนำเข้าผลงานสร้างสรรค์ของคุณเองและสร้างเว็บไซต์ใหม่ได้ในไม่กี่วินาที เพียงสร้างพิมพ์เขียวที่สามารถใช้ได้กับหลายโครงการ หรือนำการสร้างเว็บที่คุณชื่นชอบมาใช้ซ้ำ จากนั้น ส่งออกทั้งเว็บไซต์และนำไปใช้กับโครงการอื่นๆ ของคุณ
คุณสามารถใช้สิ่งที่คุณสร้างเองหรือเลือกจากไลบรารีชุดเว็บไซต์ที่ออกแบบโดยนักออกแบบของเรา เพียงนำไปใช้กับเว็บไซต์ของคุณ เพิ่มเนื้อหา และทำให้เป็นของคุณเอง
วิธีทำซ้ำหน้า WordPress ด้วยตนเองด้วยรหัส
หากคุณต้องการวิธีการทำด้วยตัวเอง (DIY) คุณสามารถสร้างฟังก์ชันเพจซ้ำของคุณเองได้โดยใช้โค้ดที่กำหนดเอง วิธีนี้ไม่ได้เพิ่มประโยชน์ใดๆ ให้กับเส้นทางปลั๊กอินนอกเหนือจากการขจัดความจำเป็นในการติดตั้งปลั๊กอินอื่นบนไซต์ของคุณ
อย่างไรก็ตาม หากการหลีกเลี่ยงปลั๊กอินอื่นเป็นสิ่งสำคัญสำหรับคุณ วิธีนี้ถือว่าใช้ได้และจะใช้ได้กับเนื้อหาตัวแก้ไขทั่วไปและ Elementor
หากต้องการใช้โค้ดนี้ คุณต้องเพิ่มลงในไฟล์ functions.php ของธีมหรือปลั๊กอินการจัดการโค้ด เช่น Code Snippets หากคุณเพิ่มลงในไฟล์ functions.php อย่าลืมใช้ธีมลูก
$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>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 );
$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>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 );
$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>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 );
โดยค่าเริ่มต้น ข้อมูลโค้ดจะเปิดใช้งานการทำซ้ำสำหรับทั้งโพสต์และเพจ หากคุณต้องการเปิดใช้งานสำหรับอย่างใดอย่างหนึ่ง คุณสามารถลบตัวกรอง page_row_actions หรือ post_row_actions ที่ด้านล่างของข้อมูลโค้ด
ปรับปรุงกระบวนการสร้างเว็บของคุณด้วยการทำซ้ำหน้าและโพสต์
ความสามารถในการทำซ้ำหน้า โพสต์ หรือโพสต์ประเภทอื่นๆ ของ WordPress นั้นมีประโยชน์มากเมื่อคุณทำงานบนไซต์ WordPress
ในโพสต์นี้ เราได้แชร์วิธีการต่างๆ 3 วิธีที่คุณสามารถใช้เพื่อทำซ้ำเนื้อหา
สำหรับคนส่วนใหญ่ วิธีที่ง่ายที่สุดในการโคลนโพสต์หรือเพจทั้งหมดคือการใช้ปลั๊กอิน Yoast Duplicate Post ฟรี มันเริ่มทำงานทันทีและทำงานร่วมกับตัวแก้ไขบล็อก (Gutenberg), Elementor และตัวแก้ไข Classic TinyMCE นอกจากนี้ยังใช้งานได้กับโพสต์ทุกประเภท ตั้งแต่หน้าไปจนถึงโพสต์ และประเภทโพสต์แบบกำหนดเองที่คุณอาจใช้อยู่
หากคุณมีร้านค้า WooCommerce คุณสามารถใช้คุณสมบัติในตัวของ WooCommerce เพื่อทำซ้ำผลิตภัณฑ์ได้ หรือคุณสามารถเพิ่มโค้ดที่กำหนดเองลงในไซต์ของคุณหากคุณไม่ต้องการติดตั้งปลั๊กอินอื่น
สุดท้าย หากคุณต้องการทำซ้ำเนื้อหา/การออกแบบของโพสต์ คุณสามารถใช้ระบบเทมเพลตของ Elementor หรือใช้ตัวเลือกตัวแก้ไขบล็อกเพื่อคัดลอกเนื้อหาทั้งหมด
ก่อนที่เราจะไป ขอเตือนสั้นๆ หนึ่งข้อ คุณไม่ต้องการเผยแพร่เนื้อหาที่ซ้ำกันในสถานการณ์ส่วนใหญ่ เนื่องจากอาจส่งผลเสียต่อ SEO ของคุณได้ ดังนั้น หากคุณทำซ้ำหน้าโดยไม่เปลี่ยนเนื้อหา (อาจแค่เปลี่ยน URL) คุณควรพิจารณาเปลี่ยนเส้นทางหน้าเดิมเมื่อทำเสร็จแล้ว
คุณยังมีข้อสงสัยเกี่ยวกับวิธีการทำซ้ำหน้าหรือโพสต์ WordPress หรือไม่? แจ้งให้เราทราบในส่วนความคิดเห็น
เว็บไซต์ WP
ทันที