ฉันกำลังมองหาวิธีทดสอบว่าโพสต์นั้นเป็นประเภทโพสต์ที่กำหนดเองหรือไม่ ตัวอย่างเช่นในแถบด้านข้างที่ฉันสามารถใส่รหัสดังนี้:
if ( is_single() ) {
// Code here
}
ฉันต้องการทดสอบโค้ดสำหรับประเภทโพสต์ที่กำหนดเองเท่านั้น
ฉันกำลังมองหาวิธีทดสอบว่าโพสต์นั้นเป็นประเภทโพสต์ที่กำหนดเองหรือไม่ ตัวอย่างเช่นในแถบด้านข้างที่ฉันสามารถใส่รหัสดังนี้:
if ( is_single() ) {
// Code here
}
ฉันต้องการทดสอบโค้ดสำหรับประเภทโพสต์ที่กำหนดเองเท่านั้น
คำตอบ:
ที่นี่คุณ: get_post_type()
และจากนั้นif ( 'book' == get_post_type() ) ...
ตามแท็กเงื่อนไข> ประเภทโพสต์ใน Codex
if ( is_singular( 'book' ) ) {
// conditional content/code
}
ข้างต้นเป็นเมื่อดูโพสต์โพสต์ที่กำหนดเองประเภทนี้:true
book
if ( is_singular( array( 'newspaper', 'book' ) ) ) {
// conditional content/code
}
ข้างต้นเป็นtrue
เมื่อดูโพสต์ในประเภทที่โพสต์ที่กำหนดเอง: หรือnewspaper
book
เพิ่มไปยังของคุณfunctions.php
และคุณสามารถใช้งานได้ทั้งในและนอกวง
function is_post_type($type){
global $wp_query;
if($type == get_post_type($wp_query->post->ID))
return true;
return false;
}
ดังนั้นตอนนี้คุณสามารถใช้สิ่งต่อไปนี้:
if (is_single() && is_post_type('post_type')){
// Work magic
}
if ( 'post-type' == get_post_type() ) {}
ในการทดสอบว่าโพสต์เป็นประเภทโพสต์ที่กำหนดเองใด ๆให้ดึงรายการประเภทโพสต์ที่ไม่ได้ติดตั้งมาทั้งหมดและทดสอบว่าประเภทโพสต์นั้นอยู่ในรายการนั้นหรือไม่
ในฐานะที่เป็นฟังก์ชั่น:
/**
* Check if a post is a custom post type.
* @param mixed $post Post object or ID
* @return boolean
*/
function is_custom_post_type( $post = NULL )
{
$all_custom_post_types = get_post_types( array ( '_builtin' => FALSE ) );
// there are no custom post types
if ( empty ( $all_custom_post_types ) )
return FALSE;
$custom_types = array_keys( $all_custom_post_types );
$current_post_type = get_post_type( $post );
// could not detect current type
if ( ! $current_post_type )
return FALSE;
return in_array( $current_post_type, $custom_types );
}
การใช้งาน:
if ( is_custom_post_type() )
print 'This is a custom post type!';
หากด้วยเหตุผลใดก็ตามที่คุณมีการเข้าถึงตัวแปร $ post ทั่วโลกคุณก็สามารถใช้
if ($post->post_type == "your desired post type") {
}
หากคุณต้องการตรวจสอบบัตรเสริมสำหรับประเภทโพสต์ที่กำหนดเองทั้งหมดของคุณ:
if( ! is_singular( array('page', 'attachment', 'post') ) ){
// echo 'Imma custom post type!';
}
ด้วยวิธีนี้คุณไม่จำเป็นต้องรู้ชื่อโพสต์ที่คุณกำหนดเอง รหัสยังใช้งานได้แม้ว่าคุณจะเปลี่ยนชื่อโพสต์ที่คุณกำหนดเองในภายหลัง
is_singular()
แท็กตามเงื่อนไขที่