Saya punya klien yang situsnya akan banyak menggunakan jenis posting khusus untuk mengonfigurasi situs mereka. Tapi saya berada di antara batu dan tempat yang sulit untuk halaman rumah yang diminta.
Pada kenyataannya, halaman beranda akan berupa setumpuk "halaman" tertentu di WordPress. Pada dasarnya, akan ada halaman untuk: Intro , Blog , Tentang Kami , Portofolio , dan Hubungi Kami . Mereka semua akan ditumpuk di atas satu sama lain sehingga Anda dapat menggulir dari satu halaman ke halaman lainnya.
Naluri pertama saya adalah hanya menggunakan halaman (disebut Home ) dan menyematkan kode pendek yang menerima siput halaman dan menampilkan urutan yang tepat (yaitu [pageOrder]intro, blog, about-us, portfolio, contact-us[/pageOrder]
). Halaman akan menggunakan templat halaman khusus untuk meletakkan berbagai hal, mengontrol lingkaran, dan menambahkan navigasi ke sisi kiri halaman. Tapi itu semua tampak klunky.
Solusi ideal saya adalah membuat jenis posting kustom (disebut Stack ) yang memungkinkan pengguna akhir untuk memposisikan halaman dengan drag-drop dan memiliki CPT mengurus tata letak dan navigasi dan semacamnya.
Masalah dengan solusi ideal saya adalah pengaturan. WordPress memungkinkan Anda untuk memilih halaman untuk halaman muka default situs. Tapi itu terkait dengan jenis halaman posting , dan saya tidak yakin di mana menghubungkannya untuk memodifikasi sehingga pengguna juga dapat memilih Stack sebagai halaman awal default.
Jadi, di mana saya menghubungkan ke dalam untuk menambahkan CPT ke dropdown halaman yang tersedia untuk halaman muka default?
post_type
belum ditetapkan dan itupage_id
bukan 0) mencegah semua 404s. Sekarang saya dapat menjalankan kueri untuk semua posting kustom saya, semua posting saya, dan semua halaman saya tanpa gangguan.Mungkin begitu? Versi halus dari solusi saya sebelumnya .
sumber
Mengapa tidak hanya membuat
front-page.php
file templat, yang menggunakan kueri / Loop normal, atau (jika opsi Tema khusus diatur untuk menampilkan CPT pada Halaman Depan), menghasilkan kueri / Loop kustom, berdasarkan CPT?Masalahnya adalah Anda harus membuat opsi Tema terpisah untuk mengontrol output Halaman Depan, sementara pada saat yang sama memerintahkan pengguna untuk mengatur Halaman Depan ke halaman statis.
Untuk mempermudah, Anda bisa mengaitkan opsi Tema Anda ke pengaturan-membaca, menggunakan grup opsi "Membaca" di panggilan Anda
register_setting
melalui Pengaturan API, sehingga itu ditampilkan dengan opsi Halaman Depan yang ada.sumber
front-page.php
dipilih secara otomatis karena merupakan bagian dari hierarki template wordpress. Tidak perlu mengingat mengapa ini terjadi (atau perlu menandainya untuk orang berikutnya).Saya pikir sesuatu mungkin telah berubah sejak EAMann menulis pembaruan pada tahun 2011, dan fungsi wpa18013_add_pages_to_dropdown () yang ia suplai tidak lagi berfungsi. Seperti yang disebutkan dalam komentar oleh Dameer, fungsi ini saat ini (Desember 2013) melempar kesalahan "Argumen 2 hilang untuk wpa18013_add_pages_to_dropdown ()"
Solusinya, bagi saya, adalah menulis ulang fungsi tanpa parameter kedua itu, atau memeriksa isinya. Blok penuh kode kemudian menjadi:
Harap perhatikan bahwa dalam contoh di atas, jenis posting khusus yang saya tambahkan adalah "unbox_tabs" daripada "stack".
sumber
Saya menggunakan teknik ini untuk memasukkan templat dari sebuah plugin. Jadi, solusi @ ChipBennett tidak berlaku.
Untuk menambahkan CPT ( ) dari plugin dalam daftar Static Pages, saya memodifikasi solusi @ EAMann sebagai berikut:
'hierarchical' => 'false'
Referensi inti v3.4.2:
sedikit perbedaan nomor baris dalam 3,5 RC3, tetapi kode tetap sama
sumber