Jadi ini mungkin tampak seperti hal yang cukup kasar, tetapi ikuti saya di sini.
Saya mencoba menambahkan beberapa logika melalui pre_get_posts
tindakan. Ini adalah seluruh objek WP_Query yang diberikan kepada saya. (lihat bagian akhir)
Hal-hal yang saya pertimbangkan untuk digunakan:
is_single()
- terlalu luas.is_singular()
- terlalu dini untuk menggunakan ini, karenaget_queried_object()
belum diatur.$query->single
properti - lagi terlalu luas.$query->get('post_type')
- tidak disetel, karena menggunakanname
properti.
adalah name
benar-benar satu-satunya indikator di sini?
WP_Query Object
(
[query] => Array
(
[page] =>
[name] => abcs-of-mental-health
)
[query_vars] => Array
(
[page] =>
[name] => abcs-of-mental-health
[error] =>
[m] => 0
[p] => 0
[post_parent] =>
[subpost] =>
[subpost_id] =>
[attachment] =>
[attachment_id] => 0
[static] =>
[pagename] =>
[page_id] => 0
[second] =>
[minute] =>
[hour] =>
[day] => 0
[monthnum] => 0
[year] => 0
[w] => 0
[category_name] =>
[tag] =>
[cat] =>
[tag_id] =>
[author_name] =>
[feed] =>
[tb] =>
[paged] => 0
[comments_popup] =>
[meta_key] =>
[meta_value] =>
[preview] =>
[s] =>
[sentence] =>
[fields] =>
[menu_order] =>
[category__in] => Array
(
)
[category__not_in] => Array
(
)
[category__and] => Array
(
)
[post__in] => Array
(
)
[post__not_in] => Array
(
)
[tag__in] => Array
(
)
[tag__not_in] => Array
(
)
[tag__and] => Array
(
)
[tag_slug__in] => Array
(
)
[tag_slug__and] => Array
(
)
[post_parent__in] => Array
(
)
[post_parent__not_in] => Array
(
)
)
[tax_query] =>
[meta_query] =>
[queried_object] =>
[queried_object_id] => 0
[post_count] => 0
[current_post] => -1
[in_the_loop] =>
[comment_count] => 0
[current_comment] => -1
[found_posts] => 0
[max_num_pages] => 0
[max_num_comment_pages] => 0
[is_single] => 1
[is_preview] =>
[is_page] =>
[is_archive] =>
[is_date] =>
[is_year] =>
[is_month] =>
[is_day] =>
[is_time] =>
[is_author] =>
[is_category] =>
[is_tag] =>
[is_tax] =>
[is_search] =>
[is_feed] =>
[is_comment_feed] =>
[is_trackback] =>
[is_home] =>
[is_404] =>
[is_comments_popup] =>
[is_paged] =>
[is_admin] =>
[is_attachment] =>
[is_singular] => 1
[is_robots] =>
[is_posts_page] =>
[is_post_type_archive] =>
[query_vars_hash] => f473ebf7f725c2627dc5fd9a1429f626
[query_vars_changed] =>
[thumbnails_cached] =>
)
pre_get_posts
(sebelum menjalankan query)?is_page()
sudah diatur dipre_get_posts
level. Jika ya, dan saya bisa mengecek apakahpost_type
tidak diset di query_vars, saya kira itu sama baiknya dengan yang didapat? Sangat rusak.is_page
tampaknya diatur.Saya tidak tahu apakah ini akan berguna:
Gunakan $ wp_query-> posts (array) untuk memeriksa jenis posting.
sumber
$wp_query->posts
variabel benar-benar diisi. Terimakasih Meskipun!Setelah beberapa tes saya melihat bahwa sayangnya tidak mungkin untuk mendapatkan posting tipe cpt di dalam
pre_get_posts
hook. Hanyais_page
berfungsi tetapi tidak tipe pos standar atau cpt dapat diambil di sana.Jika Anda hanya memiliki halaman dan posting (tanpa cpt) tanda centang
is_single()
dengantrue
sebagai respons berarti bahwa jenis posting adalah posting, karena itu mengembalikan false untuk halaman.Jika Anda juga memiliki CPT, saya khawatir Anda harus melakukan kueri tambahan . Yang paling sederhana yang bisa saya pikirkan adalah hanya mendapatkan
post_type
kolom tempat status posting dipublikasikan dan post_name adalah yang diperlukan (melewatkan revisi):Jika Anda ingin memeriksa jenis posting tertentu, Anda dapat menulis tag bersyarat kustom yang hanya menghitung baris dengan post_type yang diberikan dan nama yang diberikan:
Tentu saja ini diperlukan
pre_get_post
, dalam kaitan apa pun nanti yang dapat Anda gunakanget_post_type()
...sumber
Ini yang saya gunakan, meskipun khusus untuk struktur direktori saya sendiri.
Jarak tempuh dapat bervariasi. Bit-bit tegar tempat saya memeriksa apakah file ada dalam satu direktori tetapi tidak yang lain perlu dimodifikasi untuk versi Anda dan mungkin bisa difaktorkan ulang dengan lebih efisien. Mereka ada untuk memotong hasil di atas dan di bawah struktur direktori tertentu.
Menjalankan daftar () di footer akan memberi Anda daftar nomor dari setiap file template .php yang digunakan untuk mengkompilasi tampilan saat ini. Ini sangat berguna ketika berhadapan dengan tema anak yang memberikan komponen misteri.
sumber