Bir gönderinin özel bir gönderi türü olup olmadığını test etmenin bir yolunu arıyorum. Örneğin, kenar çubuğunda şöyle koda koyabilirim:
if ( is_single() ) {
// Code here
}
Sadece özel bir yazı tipi için kod testi istiyorum.
Bir gönderinin özel bir gönderi türü olup olmadığını test etmenin bir yolunu arıyorum. Örneğin, kenar çubuğunda şöyle koda koyabilirim:
if ( is_single() ) {
// Code here
}
Sadece özel bir yazı tipi için kod testi istiyorum.
Yanıtlar:
Burada şunlardır: get_post_type()
ve sonra if ( 'book' == get_post_type() ) ...
olarak başına Şartlı Etiketler> A Mesaj Tipi Kodeksi.
if ( is_singular( 'book' ) ) {
// conditional content/code
}
Üzerindedir true
özel yayın türünde bir yazı görüntülerken: book
.
if ( is_singular( array( 'newspaper', 'book' ) ) ) {
// conditional content/code
}
Yukarıdaki, true
özel gönderi türlerinin bir gönderisini görüntülerken: newspaper
veya book
.
Bu ve daha fazla koşullu etiketler burada görüntülenebilir .
Bunu kendinize ekleyin functions.php
; döngünün içinde veya dışında bir işlevselliğe sahip olabilirsiniz:
function is_post_type($type){
global $wp_query;
if($type == get_post_type($wp_query->post->ID))
return true;
return false;
}
Yani şimdi aşağıdakileri kullanabilirsiniz:
if (is_single() && is_post_type('post_type')){
// Work magic
}
if ( 'post-type' == get_post_type() ) {}
Bir gönderinin herhangi bir özel yazı türü olup olmadığını test etmek için, yerleşik olmayan tüm yazı türlerinin listesini alın ve yazının türünün bu listede olup olmadığını test edin.
İşlev olarak:
/**
* 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 );
}
Kullanımı:
if ( is_custom_post_type() )
print 'This is a custom post type!';
Bir joker karakter istiyorsanız, tüm özel gönderi türlerinizi kontrol edin:
if( ! is_singular( array('page', 'attachment', 'post') ) ){
// echo 'Imma custom post type!';
}
Bu şekilde, özel gönderinizin adını bilmenize gerek kalmaz. Ayrıca, daha sonra özel gönderinizin adını değiştirseniz bile kod hala çalışır.
is_singular()
biraz daha kompakt Koşullu Etiketler> Tek Sayfa, Tek Gönderi veya Eklenti