Saya membuat tema dengan jenis posting khusus untuk anggota tim, saya juga punya struktur halaman berikut:
about <-- this is a page
about/team-members <-- this is a page, lists all the team members
about/team-members/joe-bloggs <-- this is a custom post type (team member) entry
Struktur ketiga di sini menggunakan halaman tentang dan anggota tim, tetapi selanjutnya menggunakan siput jenis pos khusus agar terlihat seperti orang tuanya adalah anggota tim dan tentang. Saya telah mencapai ini dengan menetapkan opsi berikut pada jenis posting khusus:
...
'rewrite' => array( 'slug' => 'about/team-members', 'with_front' => false)
...
Ini bekerja dengan baik, tetapi ketika saya turun ke tingkat posting anggota tim saya tidak lagi mendapatkan halaman saat ini, kelas leluhur saat ini di halaman induk. Saya tahu mengapa ini, karena kami tidak secara teknis pada halaman sebagai induk dari halaman tersebut, namun apakah ada cara saya bisa mengelabui / memperbaiki / membuat badan sehingga halaman DO muncul sebagai orang tua?
Saya telah mencapai ini dengan baik dengan menggunakan halaman untuk anggota tim, namun jenis posting kustom dipilih sebagai gantinya mudah digunakan untuk administrator.
Terima kasih kawan-kawan + cewek!
sumber
register_post_type
dokumentasi, dapatkah Anda membantu?Jawaban:
Ketika Bekerja dengan halaman, Anda dapat memilih halaman induk dan nilai itu disimpan sebagai nomor id halaman induk di bidang halaman anak
post_parent
dalam database.Dalam kasus Anda, Anda menggunakan jenis posting khusus sehingga Anda harus membuat kotak metabox sendiri untuk halaman induk; sesuatu seperti:
Itu tidak ada hubungannya dengan
register_post_type
. Anda menipu WordPress untuk berpikir bahwa itu adalah halaman anak dari jenis posting lain (halaman).sumber
wp_list_pages
.wp_nav_menu
- post_parent adalah tentang / anggota tim tetapi navigasi menyoroti item induk dari posting blog "normal" saya ... ada ide lain bagaimana saya bisa memperbaikinya?Saya pergi dengan alat bantu berjalan khusus untuk mencapai sesuatu yang serupa ... menghindari kebutuhan untuk bidang khusus, tetapi semua tulisan jenis harus duduk di bawah titik yang sama di pohon halaman.
sumber
Penafian: Setelah mencobanya ini sepertinya masalah yang sudah tidak ada lagi bagi saya, karena - setidaknya bagi saya - itu hanya berfungsi pada instalasi WP 3.9.2 saya. Tidak dapat menemukan pelacak bug yang sesuai.
Saya bersama-sama memiliki sedikit plugin untuk menguji ini, yang mungkin dapat membantu seseorang. Tapi seperti yang saya katakan di disclaimer di atas, saya tidak bisa mereproduksi masalah dalam instalasi wordpress saat ini. Saya telah memisahkan plugin menjadi empat file, mereka akan bersama menjadi satu direktori di dalam direktori plugin.
plugin-cpt_menu_hierarchy.php :
termasuk-register_post_type.php :
termasuk-cpt_parent_meta_box.php :
termasuk-menu_highlighting.php :
sumber
Solusi yang memungkinkan adalah kapan pun jenis posting kustom disimpan, Anda dapat mengatur 'induknya menjadi
about/team-members
prgrammatis.Berikut langkah-langkahnya:
sumber
Saya memiliki lebih banyak waktu untuk menggali sendiri (maaf jika saya menyia-nyiakan waktu orang lain), dan saya pikir bagi saya, cara terbaik untuk menyelesaikan masalah penyorotan adalah dengan melakukan kembali apa yang
_wp_menu_item_classes_by_context()
sedang dilakukan, yaitu mengulangi semua orang tua dan leluhur dari item menu yang bertindak sebagai induk dari tipe posting kustom saya, dan menambahkan kelas dengan tepat.Karena saya juga ingin memiliki halaman induk untuk jenis posting kustom saya diperbaiki, dan mudah diubah tanpa harus memperbarui semua posting setelah perubahan induk, saya telah memutuskan untuk menggunakan opsi daripada mengisi
post_parent
bidang posting jenis posting kustom saya. Saya telah menggunakan ACF untuk itu karena saya menggunakannya dalam tema saya, tapi menggunakan fungsi opsi WordPress default tentu saja akan melakukannya juga.Untuk kebutuhan saya, saya dapat menggunakan
wp_nav_menu_objects
filter. Selain itu saya harus memfilterpage_for_posts
opsi sehingga mengembalikan nilai palsu / kosong, ini menghindari halaman posting default yang akan disorot juga.Perhatikan bahwa saya tidak pergi jauh-jauh, filter hanya menambah
current-menu-ancestor
dancurrent-menu-parent
kelas, karena ini sudah cukup untuk kebutuhan saya!Demi kelengkapan, saat mengisi
post_parent
(lihat jawaban @ Bainternet ) alih-alih menggunakan opsi, kemudian mengambil ID induk bisa terlihat seperti ini:sumber
http://codex.wordpress.org/Function_Reference/get_post_type_object http://codex.wordpress.org/Function_Reference/get_page_by_path
EDIT 1:
Karena pointer tidak berfungsi:
sumber