Geçerli sayfanın Blog Sayfası olup olmadığını kontrol edin


33

WordPress'te yeniyim. Geçerli sayfanın başlık dosyasının kodundaki blog sayfası olup olmadığını kontrol etmenin bir yolunu arıyorum.

Kontrol ettim ama bir yol bulamıyorum. Lütfen yardım edin.

Yanıtlar:


42

'Tarafından ise blog sayfasında Çünkü sen demek statik sayfa olarak set yayınlar sayfasına yer Okuma Ayarları , o zaman bu yaparak kontrol edebilir:

if ( is_front_page() && is_home() ) {
  // Default homepage
} elseif ( is_front_page() ) {
  // static homepage
} elseif ( is_home() ) {
  // blog page
} else {
  //everyting else
}

Eğer kullandığınız zaman is_home()ve is_front_page(), sen bunları kullanmak zorunda doğru sırayla hataları önlemek ve her kullanıcı yapılandırmasını test etmek.

(Kaynak: Koşullu Etiketler - Blog Sayfası )

Ya da sadece:

if ( !is_front_page() && is_home() ) {
  // blog page
}

Ya da daha basit (sanırım):

if ( is_home() ) {
  // blog page
}

if ( !is_front_page() && is_home() )En azından benim görüşüme göre, bir kullanım örneği , varsayılan ana sayfa ve blog sayfası için farklı düzen stiline sahip bir tema dağıttığınızdır .
Giraldi

Blog arşivinin veya bir sayfanın seçilip seçilmediğine bakılmaksızın is_front_page () işlevi doğru dönecektir. Doğrulama gerekiyor. codex.wordpress.org/Function_Reference/is_front_page
atwellpub

19

Aşağıdakileri thems functions.php dosyasında kullanabilirsiniz:

function is_blog () {
    return ( is_archive() || is_author() || is_category() || is_home() || is_single() || is_tag()) && 'post' == get_post_type();
}

Ve sonra bunu kontrol ettiğiniz dosyaya koyun:

<?php if (is_blog()) { echo 'You are on a blog page'; } ?>

Her sayfada görünmesini sağlamak için yukarıdakileri kancalamak için functions.php dosyanızdaki Kancaları kullanabilirsiniz.


1
Bir blog sayfasında olup olmadığınızı belirlemek için , ancak zorunlu olarak blog sayfasında (blog ana sayfasında olduğu gibi) belirlemek istiyorsanız, bu harika bir cevaptır . Bunun için @ Giraldi'nin cevabına bakınız.
Tim Malone

Yanlış olduğunu is_blog () var çünkü is_page () var. Resmi WordPress Koşullu Etiketler Dizini'ne başvurmak benim başıma gelmedi . Widget Logic eklentisini kullanarak bu çözümü etkili bir şekilde uygulayabildim.
Clarus Dignus

11

Eğer 'blog sayfası' demek, Okuma’da mesajlar sayfası olarak ayarlanmış statik bir sayfa anlamına geliyorsa:

global $wp_query;

if ( isset( $wp_query ) && (bool) $wp_query->is_posts_page ) {
    //static blog page
}

PS. Bu çözüm ayrıca template_redirect eylemi üzerinde de çalışır.


Merhaba repinsa, WPSE'ye hoş geldiniz :) Cevabınızı eklediğiniz için teşekkür ederiz. Muhtemelen kodda bir sözdizimi hatası olduğundan (bundan sonra bir noktalı virgül eksik global $wp_query) olduğundan, ancak soruyu tam olarak yanıtlamadığı için biraz oy kullanıldı. Bu bir işlevdir, ancak OP bunun başlık dosyasında nasıl çözüleceğini sordu - bu yüzden neyi nereye koyacağına dair biraz daha açıklamaya ihtiyacı olabilir. Yine, hoş geldiniz, burada olduğun için mutluyum!
Tim Malone

2
Aslında buradaki tek iyi cevap, daha fazla oy almalıydı.
Lacho Tomov

2

Blog dizin sayfasını almak için buldum

if ( !is_front_page() && is_home() ) {
  // blog page
}

benim için çalışmıyor, blog sayfasını tanımlamak için get_option ('page_for_posts') işlevini kullanmak zorunda kaldım, post_id,

if ( !is_front_page() && is_home() ){  

    if ( empty ( $post_id) ) {
        global $post;
        $post_id =  get_option( 'page_for_posts' );
    }

    //blog page
}

0

Zor bir yöntem var.

http://example.com/blog

Blog sayfanızın sümüklü böcek olduğunu varsayalım blog, bu kodu kullanabilirsiniz.

global $wp_query;
if($wp_query->query['pagename']=='blog'){
// this is blog page
}

0

ANA

if(is_home() && is_front_page() || is_front_page()): // static or default hompage
 ...
endif;

BLOG

if(is_home() && !is_front_page()): // blog
 ...
endif;

0

Sanırım çok basitti, aynı durumdaydım ve sayfa fişini kullanmak için aşağıdaki tekniği kullandım.

if( is_page('blog') ) {
echo "This is your blog page"; 
}

Ancak, en son blog yazılarını görüntülemek için ana sayfa seçmediğinizden ve blog ya da haber vb. Bloglar için belirli bir sayfa belirlediğinizden emin olun, yalnızca bu sayfa girişini kullanın ve sorun olmaz.


0

Kullanabilirsiniz..

<?php if ( is_single() ) { ?>

Do stuff here

<?php } ?>

tek bir blog yazısı olup olmadığını kontrol etmek için. Veya...

<?php if ( is_home() ) { ?>

Do stuff here

<?php } ?>

blog ana sayfası olup olmadığını kontrol etmek için


2
Blog sayfasını değiştirdiyseniz işe yaramaz
cdmckay

Bu OP'ye doğru bir cevap vermiyor. Bu, "blog sayfası" yerine tek bir yayında olduğunuzu gösterir.
butlerblog

-1

Bu şekilde kullanıyorum

// Get body classes as array
$body_classes = get_body_class();
// Check if "blog" class exists in the array
if(in_array("blog", $body_classes)) {
   // Do stuff
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.