Tôi đang tìm cách để kiểm tra nếu một bài viết là một loại bài tùy chỉnh. Ví dụ: trong, giả sử, thanh bên tôi có thể đặt mã như thế này:
if ( is_single() ) {
// Code here
}
Tôi muốn kiểm tra mã chỉ cho một loại bài tùy chỉnh.
Tôi đang tìm cách để kiểm tra nếu một bài viết là một loại bài tùy chỉnh. Ví dụ: trong, giả sử, thanh bên tôi có thể đặt mã như thế này:
if ( is_single() ) {
// Code here
}
Tôi muốn kiểm tra mã chỉ cho một loại bài tùy chỉnh.
Câu trả lời:
Bạn đang ở đây: get_post_type()
và sau đó if ( 'book' == get_post_type() ) ...
theo Thẻ có điều kiện> Loại bài đăng trong Codex.
if ( is_singular( 'book' ) ) {
// conditional content/code
}
Trên đây là true
khi xem một bài đăng của loại bài tùy chỉnh : book
.
if ( is_singular( array( 'newspaper', 'book' ) ) ) {
// conditional content/code
}
Trên đây là true
khi xem một bài đăng của các loại bài tùy chỉnh: newspaper
hoặc book
.
Những thẻ này và nhiều điều kiện hơn có thể được xem ở đây .
Thêm phần này vào của bạn functions.php
và bạn có thể có chức năng, bên trong hoặc bên ngoài vòng lặp:
function is_post_type($type){
global $wp_query;
if($type == get_post_type($wp_query->post->ID))
return true;
return false;
}
Vì vậy, bây giờ bạn có thể sử dụng như sau:
if (is_single() && is_post_type('post_type')){
// Work magic
}
if ( 'post-type' == get_post_type() ) {}
Để kiểm tra xem một bài đăng có phải là bất kỳ loại bài đăng tùy chỉnh nào không , hãy tìm nạp danh sách tất cả các loại bài đăng không tích hợp và kiểm tra xem loại bài đăng đó có trong danh sách đó không.
Là một chức năng:
/**
* 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 );
}
Sử dụng:
if ( is_custom_post_type() )
print 'This is a custom post type!';
Nếu bạn muốn kiểm tra thẻ hoang dã cho tất cả các loại bài đăng tùy chỉnh của bạn:
if( ! is_singular( array('page', 'attachment', 'post') ) ){
// echo 'Imma custom post type!';
}
Bằng cách này, bạn không cần biết tên bài đăng tùy chỉnh của mình. Ngoài ra mã vẫn hoạt động ngay cả khi bạn thay đổi tên của bài đăng tùy chỉnh của bạn sau này.
is_singular()
nhỏ gọn hơn một chút Thẻ điều kiện> Một trang đơn, một bài đăng hoặc tệp đính kèm