วิธีรวมโพสต์และประเภทโพสต์ที่กำหนดเองในแบบสอบถาม WordPress และฟีด RSS

WordPress หรือ Elementor ผสานหรือรวมโพสต์และประเภทโพสต์ที่กำหนดเองใน Query

หนึ่งในคุณสมบัติที่น่าทึ่งที่สุดของ WordPress คือความสามารถในการสร้าง โพสต์ที่กำหนดเองประเภท. ความยืดหยุ่นนี้ยอดเยี่ยมมาก… เนื่องจากประเภทโพสต์ที่กำหนดเองสามารถใช้สำหรับธุรกิจเพื่อจัดระเบียบโพสต์ประเภทอื่นๆ เช่น กิจกรรม สถานที่ คำถามที่พบบ่อย รายการพอร์ตโฟลิโอได้อย่างง่ายดาย คุณสามารถสร้างการจัดหมวดหมู่แบบกำหนดเอง ฟิลด์ข้อมูลเมตาเพิ่มเติม และแม้แต่เทมเพลตที่กำหนดเองเพื่อแสดง

บนเว็บไซต์ของเราที่ Highbridgeเรามีการตั้งค่าประเภทโพสต์ที่กำหนดเองสำหรับ โครงการ นอกเหนือจากบล็อกของเราที่เราแบ่งปันข่าวสารของบริษัท การมีประเภทโพสต์ที่กำหนดเองทำให้เราสามารถจัดโครงการในหน้าความสามารถของเรา... ดังนั้นหากคุณดู บริการ WordPressโปรเจ็กต์ที่เราได้ดำเนินการซึ่งเกี่ยวข้องกับ WordPress จะแสดงโดยอัตโนมัติ ฉันทำงานอย่างหนักเพื่อพยายามบันทึกโครงการทั้งหมดของเรา เพื่อให้ผู้เยี่ยมชมไซต์ของเราสามารถเห็นงานที่เราทำเพื่อบริษัทต่างๆ

การรวมโพสต์และประเภทโพสต์ที่กำหนดเอง

หน้าแรกของเราค่อนข้างกว้างขวางอยู่แล้ว ดังนั้นฉันจึงไม่ต้องการสร้างส่วนสำหรับโพสต์ในบล็อกของเราและส่วนสำหรับโครงการล่าสุดของเรา ฉันต้องการรวมทั้งโพสต์และโครงการให้เป็นผลลัพธ์เดียวกันโดยใช้ตัวสร้างเทมเพลตของเรา Elementor. Elementor ไม่มีอินเทอร์เฟซสำหรับผสานหรือรวมโพสต์และประเภทโพสต์ที่กำหนดเอง แต่การทำเช่นนี้ค่อนข้างง่ายด้วยตัวคุณเอง!

ภายในหน้า functions.php ของธีมลูกของคุณ ต่อไปนี้คือตัวอย่างวิธีรวมทั้งสองอย่างเข้าด้วยกัน:

function add_query_news_projects( $query ) {
	if ( is_home() && $query->is_main_query() )
		$query->set( 'post_type', array( 'post', 'project' ) );
	return $query;
}
add_filter( 'pre_get_posts', 'add_query_news_projects' );

ตัวกรอง pre_get_posts ช่วยให้คุณสามารถอัปเดตข้อความค้นหาและตั้งค่าให้รับทั้งโพสต์และ โครงการ ประเภทโพสต์ที่กำหนดเอง แน่นอน เมื่อคุณเขียนโค้ด คุณจะต้องอัปเดตประเภทโพสต์ที่กำหนดเองให้เป็นแบบแผนการตั้งชื่อที่แท้จริงของคุณ

การรวมโพสต์และประเภทโพสต์ที่กำหนดเองในฟีดของคุณ

ฉันยังมีไซต์ที่เผยแพร่ไปยังโซเชียลมีเดียโดยอัตโนมัติผ่านทางฟีดของมัน... ดังนั้นฉันจึงต้องการใช้แบบสอบถามเดียวกันนี้เพื่อตั้งค่าฟีด RSS ในการทำเช่นนี้ ฉันต้องเพิ่มคำสั่ง OR และรวม is_feed.

function add_query_news_projects( $query ) {
	if ( is_home() && $query->is_main_query() || is_feed() )
		$query->set( 'post_type', array( 'post', 'project' ) );
	return $query;
}
add_filter( 'pre_get_posts', 'add_query_news_projects' );

การรวมโพสต์และประเภทโพสต์ที่กำหนดเองใน Elementor

อีกหนึ่งข้อสังเกต… Elementor มีคุณลักษณะที่ยอดเยี่ยมมากซึ่งคุณสามารถตั้งชื่อและบันทึกข้อความค้นหาภายในไซต์ของคุณได้ ในกรณีนี้ ฉันกำลังสร้างแบบสอบถามที่เรียกว่าโครงการข่าว จากนั้นฉันสามารถเรียกใช้จากอินเทอร์เฟซผู้ใช้ Elementor ในส่วนการสืบค้นโพสต์

function my_query_news_projects( $query ) {
	$query->set( 'post_type', array( 'post', 'project' ) );
}
add_action( 'elementor/query/news-projects', 'my_query_news_projects' );

นี่คือลักษณะที่ปรากฏในส่วนต่อประสานผู้ใช้ Elementor:

องค์ประกอบโพสต์แบบสอบถาม

การเปิดเผยข้อมูล: ฉันใช้ไฟล์ Elementor ลิงค์พันธมิตรในบทความนี้