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


23

İndex.php dosyalarında aşağıdaki kodu çok görüyorum. is_front_page()Site Ön Sayfasını görüntülerken (blog gönderileri dizinini veya statik bir sayfayı görüntülerken) is_home()true değerini döndürürken Blog Blogları Dizini'ni görüntülerken (ön sayfada veya statik sayfada görüntülenir) true değerini döndürdüğünü anlıyorum . Hala biraz aşağıdaki kodun kullanımı hakkında stumped -

<?php if ( have_posts() ) : ?>

    <?php if ( is_home() && ! is_front_page() ) : ?>
        <header>
            <h1 class="page-title screen-reader-text"><?php single_post_title(); ?></h1>
        </header>
    <?php endif; ?>

Bu kod parçasının neden bu kadar popüler olduğuna dair herhangi bir açıklama büyük beğeni topluyor.

Yanıtlar:


15

Bu, statik bir sayfa yayınları gösterecek şekilde ayarlandığında sayfanın başlığını görüntüler .

Örneğin

Ana sayfamdaki yayınları gösteriyorum ... Hiçbir şey yapmaz.

Ben, diyelim ki, sayfadaki gösteri Mesajları başlıklı Eğer Haberler ... O göstereceğiz Haberler H1.

Bu, bir sayfada yayınlar gösterildiğinde sayfanın başlığı gösterilecek şekilde kullanılır, ancak blog yayınları ön sayfada (ana sayfa) gösterildiğinde hiçbir şey olmaz.

Bunu yapıyoruz çünkü eğer ana sayfadaysa ... ilk yazının başlığını göstererek iki kez görünmesini sağlar (H1'de bir kez üstte ve mesajlar ilmeklediğinde tekrar).


Teşekkürler Shramee. Anlamaya çalışırken blog dizin sayfamın başlığını bir <h1> içinde buldum, ancak aslında hiçbir yerde görünmüyor. Bazı temalar sadece ekran okuyucu kullanan insanlara yardım etmek ve daha sonra yorum yapılmamış / belgelenmemişse yeni başlayanlar için biraz kafa karıştırıcı olan gerçek metni gizlemek için kullandığını düşünüyorum.
olliew

Şey ... Hangi bağlam yazılarının kullanıldığını bilmeye yardımcı olur (yukarıdaki Haberler örneğinde olduğu gibi), ancak esas olarak SEO için oradadır , H1 arama botlarının sayfa içeriğini daha iyi anlamalarına yardımcı olmada büyük bir rol oynar.
shramee

26

Doğru şekilde nasıl yapılacağı aşağıda açıklanmıştır:

if ( is_front_page() && is_home() ) {
// Default homepage

} elseif ( is_front_page()){
// Static homepage

} elseif ( is_home()){

// Blog page

} else {

// Everything else

}

Bu, ana sayfanızda ve blog sayfanızda içerik görüntülemenin veya değiştirmenin tek (doğru) yoludur.


4

"Popüler" konusunda emin değilim, bana öyle gelmiyor (ama o kadar çok temaya bakmıyorum).

Her koşulun ne yaptığını iyi kavramış görünüyorsunuz, bu sizin için kafa karıştırıcı olmamalıdır. Bu birleştirir koşullar blog indeksi görüntülenmekte olduğunu kontrol etmek ve bu kadar değil ön sayfasında.

Ah, single_post_title()tahmin ediyorum nedeni küresel (tekrarlayan döngü tarafından ayarlanan $wp_query->queried object) yerine, $post( ana sorgu tarafından mevcut bağlam olarak ayarlanmış) için başlık görüntüler olmasıdır .

Bazı durumlarda bunlar aynı olacaktır, ancak durum kontrolleri gibi bir durumda olmayacaktır. Döngü mesajlar içerecektir , ancak sorgulanan nesne sayfa olacaktır (bir şeyleri karıştırmadıkça :).


Son zamanlarda bir sürü şablon aradım ve çok yaygın. Döngünün ne yaptığını anladığım konusunda haklısın, sadece insanların bunu neden bu şekilde yapmayı seçtiğini anlamıyorum. Neden the_title () yerine single_post_title kullanılır?
olliew
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.