Halaman Depan WordPress vs Halaman Utama
WordPress ialah CMS yang hebat. Anda boleh melakukan apa sahaja yang anda mahu dengannya. Tetapi kadangkala, anda mungkin menemui masalah dengan beberapa fungsi asas. Contohnya, anda mungkin menggunakan is_front_page dan is_home WordPress Homepage bersyarat dalam tema dan pemalam anda (anda boleh mengetahui lebih lanjut tentang fungsi bersyarat dalam siaran Tag Bersyarat kami). Tetapi anda melakukan ia salah!
Tetapan Halaman Utama
Dengan fungsi bersyarat tersebut, anda boleh menyemak sama ada halaman utama sedang dipaparkan (is_home), atau jika halaman utama menggunakan halaman statik (is_front_page). Anda boleh menentukan tingkah laku sedemikian dalam Tetapan=> Membaca.
Dalam pemalam atau tema anda, anda boleh menggunakan fungsi ini untuk memaparkan atau menukar kandungan bergantung pada tetapan pengguna. Tetapi anda melakukan kesilapan besar: anda tidak mengambil kira halaman blog statik. Apabila anda menentukan halaman statik untuk halaman utama anda, anda juga boleh menentukan halaman blog : ia akan menggantikan halaman utama WordPress lalai untuk menyenaraikan setiap siaran.
Dipendekkan cerita : is_front_page hendaklah sentiasa diuji dengan dan sebelum is_home. Dan inilah sebabnya.
Bagaimana ia berfungsi
1. Tetapan biasa:
Halaman utama WordPress lalai menyenaraikan siaran terbaharu anda.
- Berikut ialah URL: website.com
- is_home mengembalikan BENAR
- is_front_page mengembalikan BENAR
Di sini, tidak ada masalah.
2. Halaman utama statik:
Halaman utama menggunakan salah satu halaman statik anda.
- URLnya masih laman web.com
- is_home mengembalikan FALSE
- is_front_page mengembalikan BENAR
Tiada isu dengan halaman utama statik anda : is_front_page kembali benar.
3. Halaman blog statik
Salah satu halaman anda menyenaraikan semua siaran anda.
- URLnya ialah website.com/pagename
- is_home : BENAR
- is_front_page : SALAH
Di sini, anda mungkin menghadapi beberapa masalah : is_home mengembalikan BENAR, tetapi ini bukan halaman utama anda : ia adalah halaman WordPress yang menyenaraikan setiap siaran, seperti yang dilakukan oleh arkib kategori utama.
Gunakan Tag Bersyarat
Apabila anda membuat pemalam atau tema, anda perlu mempertimbangkan bahawa pengguna boleh menggunakan tetapan halaman tersebut. Jadi, setiap kali anda menggunakan is_home, anda harus sentiasa menguji is_front_page sebelum ini dan anda harus sentiasa menggunakan parameter bersyarat untuk berbuat demikian.
Jika tidak, anda mungkin menghadapi masalah dengan sesetengah pengguna. Contohnya, jika anda hanya menguji is_home untuk memaparkan kandungan halaman utama anda, akan ada isu dengan halaman utama statik yang tidak akan memaparkan kandungan yang betul.
Inilah cara untuk melakukannya dengan betul:
if ( is_front_page() && is_home() ) {
// Default homepage ( both the front page and the recent posts page)
} elseif ( is_front_page() ) {
// Static homepage
} elseif ( is_home() ) {
// Blog page
} else {
// Everything else
}Ini adalah satu-satunya cara (betul) untuk memaparkan atau mengubah kandungan dengan halaman utama anda dan halaman blog anda.
Penting: Sila ambil perhatian bahawa fungsi ini hanya berfungsi sebaik sahaja WordPress dimuatkan seperti pada fail templat atau cangkuk tindakan tertentu. Anda tidak boleh hanya membuang syarat ini ke dalam functions.php dan mengharapkan ia berfungsi.
Bagaimana dengan anda?
Adakah anda sudah menghadapi masalah ini? Apakah penyelesaian anda? Saya mahu mendengar tentangnya!
