Kapan menggunakan is_home () vs is_front_page ()?

66

Saya mendapati bahwa is_front_pagenampaknya mengembalikan true ketika saya melihat halaman beranda dan memiliki satu posting lengket ditugaskan di sana.

Ini juga mengembalikan true ketika saya telah menetapkan halaman sebagai halaman depan statis melalui Pengaturan> Membaca .

Mengapa saya ingin menggunakannya is_home()?

N2Mystic
sumber

Jawaban:

65

is_front_page()mengembalikan true jika pengguna berada di halaman atau halaman posting yang diatur ke halaman depan di Pengaturan-> Membaca-> Beranda Anda menampilkan

Jadi jika Anda menetapkan about ussebagai halaman depan maka syarat ini hanya akan benar jika menunjukkan halaman tentang kami .

is_home() kembali benar ketika pada halaman daftar posting, ini biasanya halaman yang menunjukkan 10 posting terbaru.

Jika pengaturan di bawah tampilan beranda Anda dibiarkan default, maka halaman beranda akan mengembalikan true untuk keduanya is_front_page()danis_home()

Contoh menggunakan is_home():

  • Anda telah mengatur halaman posting Anda ke halaman yang disebut Berita .
  • Seorang pengguna menavigasi di sana dan di header Anda ingin menunjukkan navigasi tambahan
  • Anda dapat menggunakannya is_home()untuk melakukan ini.
Brady
sumber
18
Persis. Saya membedakan sebagai berikut: is_front_page()mengembalikan true ketika melihat Halaman Depan Situs (apakah menampilkan indeks posting blog atau halaman statis), sementara is_home()mengembalikan true ketika melihat Indeks Posting Blog (apakah ditampilkan di halaman depan atau pada halaman statis).
Chip Bennett
3

Saya telah menemukan itu is_home()dan is_front_page()tidak memberikan apa yang diharapkan untuk multisite. Solusi saya menggunakan barang bawaan PHP:

if($_SERVER['REQUEST_URI'] == '/') {
    // you must be on the home page
}

Seperti disebutkan dalam komentar, pendekatan ini tidak akan berfungsi untuk instans WP yang dipasang di subdirektori dari root web. Gunakan sesuai kebijaksanaan Anda.

Dylan Pierce
sumber
Tolong jelaskan bagaimana itu tidak memberikan apa yang diharapkan.
Christine Cooper
Pada situs utama multi-situs jika Anda menggunakan segala bentuk is_home()atau is_front_page()pada halaman depan statis atau blog, kedua fungsi akan menghasilkan false.
Dylan Pierce
1
Saya baru saja menguji kedua kondisi pada lingkungan multisite dan keduanya kembali benar ketika saya mengunjungi /halaman masing-masing .
Christine Cooper
Saya menggunakan kotak VVV wordpress dengan plugin multisite: github.com/Varying-Vagrant-Vagrants/vvv-multisite mungkin ada sesuatu yang salah konfigurasi di dalamnya? Apapun hanya meninggalkan jawaban untuk solusi jika ada yang datang dengan situasi yang sama.
Dylan Pierce
Kode Anda hampir sempurna, satu-satunya adalah: Bagaimana jika WP diinstal dalam subdirektori, misalnya / blog atau / wordpress. Maka ini tidak akan berguna.
Remzi Cavdar
1

Anda ingin menggunakan is_home()ketika Anda ingin memeriksa apakah pengguna melihat daftar posting blog Anda (biasanya diatur untuk menampilkan 10 posting per halaman). Jika Anda memiliki home.phpfile dalam tema Anda, itu akan ditampilkan ketika is_home()kondisinya benar.

Berikut ini mungkin dapat menghapus beberapa kebingungan juga: ketika is_front_page()dan is_home()kondisi, keduanya benar, templat front-page.phpakan digunakan sebagai gantinya home.php.

Momekh
sumber