Rumah >Tutorial CMS >WordTekan >Panduan Definitif untuk Jenis Pos Kustom WordPress

Panduan Definitif untuk Jenis Pos Kustom WordPress

Lisa Kudrow
Lisa Kudrowasal
2025-02-15 13:11:11574semak imbas

Panduan Definitif untuk Jenis Pos Kustom WordPress

Takeaways Key

    WordPress telah berkembang menjadi sistem pengurusan kandungan sepenuhnya dan platform pembangunan, yang mampu mengumpulkan jawatan atau data berstruktur ke dalam pelbagai jenis melalui plugin, tema, dan API REST WP.
  • Jenis pos tersuai (CPT) di WordPress adalah jenis pos baru yang dicipta dan didaftarkan kepada WordPress. Contoh jenis pos boleh termasuk portfolio, testimoni, dan produk untuk laman web syarikat atau perniagaan.
  • Membuat jenis pos tersuai melibatkan mendaftarkan jenis pos dengan fungsi register_post_type () dan menyesuaikannya menggunakan pelbagai argumen. Hujah -hujah ini dapat mengawal aspek seperti nama deskriptif, penglihatan awam, kedudukan menu, ikon, hierarki, dan ciri -ciri lain dari jenis pos.
  • Terdapat beberapa plugin yang tersedia, seperti UI jenis post adat, rangka kerja PODS, dan pembuat jenis pos tersuai, yang dapat memudahkan proses membuat jenis pos tersuai, menjadikannya lebih mesra pengguna dan menghapuskan keperluan untuk pengekodan.
  • pergi adalah hari -hari ketika WordPress dirujuk sebagai perisian blogging.

Keupayaan untuk melanjutkan fungsinya melalui plugin dan tema, jawatan kumpulan atau data berstruktur ke dalam pelbagai jenis dan juga kedatangan API REST WP ke dalam teras, telah menyaksikan ia terus berkembang menjadi sistem pengurusan kandungan dan pembangunan sepenuhnya.

Selama bertahun-tahun, saya telah berjaya membangunkan beberapa aplikasi web tersuai yang dibina di atas WordPress yang sangat menggunakan jenis post tersuai. Contoh salah satu aplikasi web ini ialah pasaran tema plugin WordPress saya yang dipanggil Profile.

melihat lebih dekat pasaran tema yang dipautkan di atas, anda akan mendapati bahawa ia menggunakan sistem penomboran tersuai yang jelas dalam URL pautan penembakan seterusnya / sebelumnya. Oleh itu, adalah mungkin untuk anda membina sistem penomboran dalaman yang akan berfungsi dengan sempurna dalam menanyakan jenis pos tersuai (CPT).

Cukup berkata, mari kita turun ke tujuan tutorial ini iaitu, mempelajari selok -belok jenis pos tersuai di WordPress.

Saya berharap dapat menangani banyak halangan yang saya temui secara peribadi bekerja dengan CPT serta beberapa perkara yang sejuk yang boleh anda lakukan dengannya.

Definisi Jenis Pos tersuai

WordPress boleh memegang dan memaparkan pelbagai jenis kandungan. Satu item kandungan sedemikian biasanya dipanggil jawatan, walaupun

pos

juga merupakan jenis pos tertentu. Secara dalaman, semua jenis pos disimpan di tempat yang sama, dalam jadual pangkalan data WP_POSTS, tetapi dibezakan oleh lajur yang dipanggil Post_Type.

Jenis pos merujuk kepada pelbagai data berstruktur yang dikumpulkan bersama -sama yang dikekalkan dalam jadual Pangkalan Data WordPress.

Contoh jenis pos adalah pos (sekumpulan catatan blog), halaman (sekumpulan halaman), lampiran (sekumpulan fail media yang dimuat naik), dan semakan semula (kumpulan semakan pasca) yang asli atau dibina masuk ke WordPress.

Bersenjata dengan definisi jenis pos, jenis pos baru yang dicipta dan didaftarkan ke WordPress dirujuk sebagai jenis pos tersuai.

Jika anda membina laman web syarikat atau perniagaan dengan WordPress, contoh jenis pos yang boleh anda buat ialah portfolio, testimoni dan produk.

3

Membuat jenis pos tersuai

Membuat jenis pos tersuai cukup mudah. Pertama, daftarkan jenis pos dengan fungsi register_post_type () dan akhirnya, bungkus register_post_type () dalam panggilan fungsi dan hubungkannya ke tindakan init seperti:

Dari kod di atas, anda dapat melihat register_post_type () mempunyai parameter fungsi kedua yang menerima beberapa argumen array yang diperlukan dalam menyesuaikan setiap aspek jenis pos tersuai.

sekarang anda harus melihat jenis post custom portfolio yang muncul di papan pemuka admin WordPress.
<span><span>function portfolio_cpt() {</span>
</span>
    <span>$args = array(
</span>        <span>'label'  => 'Portfolio',
</span>        <span>'public' => true,
</span>    );

    register_post_type( <span>'portfolio', $args );
</span>}

add_action( <span>'init', 'portfolio_cpt' );</span>

Perlu diperhatikan bahawa apabila memanggil register_post_type (), hujah kedua adalah pilihan. Iaitu, CPT juga boleh dibuat seperti berikut:

Panduan Definitif untuk Jenis Pos Kustom WordPress Jika CPT dibuat dengan cara ini, ia tidak akan muncul dalam menu papan pemuka admin (walaupun masih boleh diakses melalui akses URL langsung "http://example.com/wp-admin/edit.php?post_type= portfolio ") dan kata-kata UInya (jika tidak dirujuk sebagai label) dan notis admin akan sama dengan jenis pos pasca terbina dalam.

mari kita pergi ke beberapa argumen array untuk menyesuaikan CPT dan fungsi masing -masing.
<span><span>function portfolio_cpt() {</span>
</span>
    register_post_type( <span>'portfolio' );
</span>}

add_action( <span>'init', 'portfolio_cpt' );</span>

label

Nama deskriptif jamak untuk jenis pos tersuai anda. Sebagai contoh, jika anda membuat CPT filem, ini harus menjadi filem.

ia akan lalai kepada nilai $ post_type yang merupakan parameter pertama register_post_type ().

Labels

Pelbagai label untuk jenis pos ini. Setiap rentetan adalah sedikit teks yang dipaparkan dalam halaman admin tertentu.

Pastikan untuk membuat rentetan ini diterjemahkan jika anda membuat plugin untuk kegunaan awam.

  • Nama: Bentuk jamak nama pos anda.
  • singular_name: bentuk tunggal nama post anda.
  • add_new: item menu untuk menambahkan catatan baru.
  • add_new_item: Tajuk yang ditunjukkan semasa membuat jawatan baru.
  • edit_item: Header yang ditunjukkan semasa mengedit siaran.
  • new_item: Ditunjukkan dalam menu Kegemaran dalam tajuk Admin.
  • view_item: ditunjukkan bersama permalink pada skrin pos edit.
  • Search_Items: Teks butang untuk kotak carian pada skrin Edit Posts.
  • not_found: Teks untuk dipaparkan apabila tiada jawatan ditemui melalui carian di pentadbir.
  • not_found_in_trash: Teks untuk dipaparkan apabila tiada jawatan di sampah.

senarai lengkap label dan deskripsi mereka boleh didapati di sini.

Keterangan

Ringkasan deskriptif ringkas tentang jenis pos, walaupun saya tidak dapati di mana ini digunakan dalam admin WordPress.

public

Bergantung pada nilai booleannya, ia secara automatik akan menentukan apa argumen lain yang perlu kecuali jika ia ditakrifkan secara khusus. Jika anda ingin mempunyai lebih banyak kawalan ke atas hujah -hujah awam, terdapat tiga hujah khusus yang boleh anda tetapkan:

  • show_ui: menentukan sama ada untuk menunjukkan skrin pentadbiran.
  • publicly_queryable: Menentukan sama ada pertanyaan untuk jenis pos ini boleh dilakukan dari hujung depan.
  • exclude_from_search: Sama ada jawatan harus muncul dalam hasil carian.

menu_position

Secara lalai, jenis pos baru ditambah selepas item menu 'Komen' dalam pentadbir. Tetapi anda perlu keupayaan untuk memindahkannya ke kedudukan yang sesuai dari pilihan anda.

Sebagai contoh, menetapkan nilai menu_position ke 70 akan menambah item menu anda di bawah pengguna.

menu_icon

Jenis pos baru akan lalai ke ikon menu Posts, tetapi jika anda mahu ikon tersuai di dalamnya, tetapkan label ini ke URL ikon atau fail imej.

<span><span>function portfolio_cpt() {</span>
</span>
    <span>$args = array(
</span>        <span>'label'  => 'Portfolio',
</span>        <span>'public' => true,
</span>    );

    register_post_type( <span>'portfolio', $args );
</span>}

add_action( <span>'init', 'portfolio_cpt' );</span>

Anda juga boleh menggunakan mana -mana dashicon sebagai ikon CPT anda.

Katakan anda ingin menggunakan dashicon muat turun, tetapkan label ini ke nilai Dashicon seperti berikut:

<span><span>function portfolio_cpt() {</span>
</span>
    register_post_type( <span>'portfolio' );
</span>}

add_action( <span>'init', 'portfolio_cpt' );</span>

Hierarki

hujah ini membolehkan anda membuat keputusan sama ada untuk membuat hierarki CPT anda atau tidak. Nilai lalai adalah palsu. Ditetapkan untuk benar untuk menjadikan hierarki CPT anda.

menyokong

hujah sokongan membolehkan anda menentukan pelbagai kotak meta dan medan yang akan muncul di skrin semasa mengedit atau membuat jawatan baru. Ini lalai ke tajuk dan editor.

Menetapkan hujah ini kepada palsu akan menghalang tingkah laku lalai (tajuk dan editor).

Terdapat beberapa pilihan yang ada:

  • Tajuk: medan input teks untuk membuat tajuk pos.
  • Editor: Editor Kandungan Tinymce untuk Menulis.
  • Pengarang: Kotak pilih untuk menukar pengarang pos.
  • Thumbnail: Keupayaan imej yang diketengahkan.
  • Petikan: Textarea untuk menulis petikan tersuai.
  • Trackbacks: Keupayaan untuk menghidupkan Trackbacks dan Pingbacks On/Off.
  • medan adat: medan input medan tersuai.
  • Komen: Hidupkan komen hidup/mati.
  • semakan: membolehkan semakan dibuat dari jawatan anda.
  • Post-Format: Tambah Format Pos, lihat bahagian 'Format Pos'
  • Attribut halaman: Kotak atribut yang ditunjukkan untuk halaman. Ini penting untuk jenis pos hierarki, jadi anda boleh memilih jawatan induk.

register_meta_box_cb

Menyediakan fungsi panggil balik yang akan dipanggil apabila menubuhkan kotak meta untuk borang edit. Fungsi panggil balik mengambil satu argumen $ pos, yang mengandungi objek WP_POST untuk jawatan yang sedang diedit.

Ciri ini amat berguna kepada pemaju bagi mereka untuk membuat kotak meta tersuai yang akan muncul dalam skrin edit CPT.

<span><span>function portfolio_cpt() {</span>
</span>
    <span>$args = array(
</span>        <span>'label'  => 'Portfolio',
</span>        <span>'public' => true,
</span>    );

    register_post_type( <span>'portfolio', $args );
</span>}

add_action( <span>'init', 'portfolio_cpt' );</span>

taksonomi

pelbagai taksonomi berdaftar seperti kategori atau post_tag yang akan digunakan dengan jenis pos tersuai ini.

<span><span>function portfolio_cpt() {</span>
</span>
    register_post_type( <span>'portfolio' );
</span>}

add_action( <span>'init', 'portfolio_cpt' );</span>

has_archive

Menetapkan hujah ini kepada TRUE akan membolehkan arkib untuk jenis pos tersuai anda. Sebagai contoh, katakan CPT anda adalah buku -buku, melawat http://yoursite.com/books akan memaparkan senarai jawatan yang dimiliki oleh Buku Jenis Pos Custom.

menulis semula

hujah ini membolehkan anda menentukan struktur permalink jenis post tersuai anda apabila melihat satu jawatan atau arkib.

Nilai lalai adalah benar dan menggunakan $ post_type sebagai slug. Untuk mengelakkan penulisan semula, ditetapkan kepada palsu.

mari kita lihat beberapa contoh untuk demi kejelasan.

Katakanlah anda membuat ulasan jenis pos tersuai tetapi ingin menukar slug URL dari ulasan ke penilaian , menggunakan hujah penulisan semula berikut akan mengubah URL dari http: // contoh .com/review/harry-potter/to http://example.com/assessment/harry-potter/ untuk jawatan tunggal dan http://example.com/review/ ke http://example.com/assessment/ untuk untuk Arkib CPT.

<span>'menu_icon' => get_stylesheet_directory_uri() . '/images/portfolio-icon.png',</span>

Setiap kali anda melakukan penulisan semula URL WordPress, pastikan anda mengklik butang Simpan Perubahan dalam Tetapan >> permalinks untuk mencipta semula peraturan penulisan semula.

Jadi pada dasarnya, slug mentakrifkan slug URL baru manakala dengan_front menentukan jika struktur permalink dipenuhi dengan asas depan.

masih belum jelas dengan_front? Mari kita lihat contoh.

Katakanlah anda mempunyai struktur permalink dengan blog yang dilampirkan ke URL seperti yang digambarkan dalam imej di bawah.

Panduan Definitif untuk Jenis Pos Kustom WordPress

jika with_front ditetapkan kepada palsu, url satu pos dan arkib pos menjadi http://example.com/blog/assessment/harry-potter/ dan http://example.com/blog/assessment/ Tetapi jika ia ditetapkan untuk benar, URL satu pos dan post arkib masing-masing menjadi http://example.com/assessment/harry-potter/ dan http://example.com/assessment/.

Perhatikan peninggalan blog di dalamnya? Itulah perbezaannya.

can_export

Gunakan hujah ini untuk memutuskan sama ada jawatan yang dimiliki oleh jenis pos tersuai anda boleh dieksport melalui alat eksport WordPress. Secara lalai, ini ditetapkan untuk benar.

query_var

Argumen ini membolehkan anda mengawal pemboleh ubah pertanyaan yang digunakan untuk mendapatkan jawatan jenis ini.

Jika ditetapkan kepada Benar, ia akan membolehkan anda meminta jenis jawatan tersuai buku melalui example.com/?book=harry-potter di mana Harry-Potter yang merupakan slug URL entri atau pos.

Jika ditetapkan ke rentetan dan bukannya benar (contohnya

penerbitan

), anda boleh lakukan: example.com/?publication=harry-potter. Kaveat "query_var"

Jika query_var tidak ditentukan dalam argumen array pendaftaran CPT anda, ia mungkir kepada $ post_type Oleh itu, ia sentiasa ditakrifkan melainkan anda menetapkannya kepada palsu.

di sini datang kaveat. Setiap kali nilai query_var ditambah sebagai rentetan pertanyaan ke URL, ia akan membawa kepada 404.

izinkan saya menjelaskan. Katakan nilai CPT Query_var anda adalah semakan dan rentetan pertanyaan dengan set kunci untuk semakan telah ditambahkan ke mana -mana URL laman WordPress anda dalam mana -mana bentuk berikut:

http://example.com/?review=some-random-string
  • http://example.com/a-epost-slug-here/?foo=bar&review=some-random-string
  • Ini akan menyebabkan 404 berlaku.

Saya benar -benar belajar tentang ini dengan cara yang sukar. Pada masa itu saya mempunyai masalah ini, saya membuat tiket di WordPress Core TRAC untuk melaporkannya sebagai bug.

Saya mengambil masa beberapa minggu untuk akhirnya memikirkannya sebelum beberapa ahli pasukan WordPress Core menjawab tiket saya.

Mempercepatkan persediaan jenis pos tersuai dengan plugin

3 Contohnya termasuk (tetapi tidak terhad kepada):

jenis post custom ui

Rangka Kerja Pods

    Pembuat Jenis Pos tersuai
  • Kesimpulan
  • Dalam tutorial ini, kami belajar jenis post tersuai dan bagaimana mereka dicipta.
Ini sebenarnya yang pertama dalam siri pada jenis post adat WordPress. Dalam tutorial saya yang seterusnya, kami akan belajar bagaimana untuk menyesuaikan pelbagai notis admin, bagaimana untuk mendaftarkan taksonomi tersuai ke jenis pos dan menambah tab Bantuan Kontekstual ke skrin CPT anda.

Sehingga itu, pengekodan gembira!

Soalan Lazim di WordPress Custom Post Jenis

Apakah faedah menggunakan jenis post adat WordPress?

Jenis post adat WordPress menawarkan pelbagai manfaat. Mereka membolehkan anda membuat jenis kandungan tertentu untuk laman web anda, di luar jawatan dan halaman standard. Ini termasuk portfolio, testimoni, produk, dan banyak lagi. Jenis Pos tersuai juga menyediakan cara yang lebih teratur dan cekap untuk menguruskan kandungan anda. Mereka boleh disesuaikan dengan ciri dan bidang tertentu, menjadikannya lebih mudah untuk memasukkan dan memaparkan kandungan dengan cara yang konsisten. Taipkan WordPress melibatkan menambah beberapa baris kod ke fail fungsi tema anda. Anda perlu menggunakan fungsi register_post_type (), yang membolehkan anda menentukan nama, label, dan ciri -ciri lain dari jenis pos tersuai anda. Ingatlah untuk membuang peraturan penulisan semula anda setelah membuat jenis pos tersuai baru dengan melawat halaman Tetapan Permalinks. ke jenis pos tersuai anda. Ini boleh dilakukan menggunakan fungsi add_meta_box (), yang membolehkan anda menambah kotak meta baru ke skrin penyuntingan pos. Anda kemudiannya boleh menggunakan kotak meta ini untuk memasukkan dan memaparkan maklumat tambahan untuk jenis pos tersuai anda.

Bagaimana saya memaparkan jenis pos tersuai di laman web saya?

dilakukan dengan membuat fail templat baru dalam tema anda. Fail ini hendaklah dinamakan tunggal- {post-type} .php, di mana {post-type} adalah nama jenis pos tersuai anda. Anda kemudiannya boleh menggunakan gelung WordPress standard untuk memaparkan kandungan jenis pos tersuai anda.

Bolehkah saya menggunakan plugin untuk membuat jenis pos tersuai? membuat jenis pos tersuai. Plugin ini menyediakan antara muka mesra pengguna untuk membuat dan menguruskan jenis pos tersuai, tanpa memerlukan pengekodan. Beberapa pilihan popular termasuk jenis UI, pod, dan jenis alat khas. Fungsi register_taxonomy (). Fungsi ini membolehkan anda membuat taksonomi baru, menentukan labelnya, dan mengaitkannya dengan jenis pos tersuai anda. Anda kemudiannya boleh menggunakan taksonomi ini untuk mengkategorikan dan menapis kandungan jenis post anda. Ini boleh dilakukan dengan menetapkan hujah 'hierarki' kepada benar apabila mendaftarkan jenis pos tersuai anda. Jenis pos tersuai hierarki boleh mempunyai jawatan ibu bapa dan anak, sama dengan halaman.

Bagaimana saya menyesuaikan antara muka admin untuk jenis pos tersuai saya?

Menyesuaikan antara muka admin untuk jenis pos tersuai anda boleh dilakukan dengan menggunakan argumen 'menyokong' semasa mendaftarkan jenis pos tersuai anda. Hujah ini membolehkan anda menentukan ciri -ciri mana yang terdapat dalam skrin penyuntingan pos, seperti tajuk, editor, lakaran kecil, dan bidang tersuai.

Ya, anda boleh memasukkan jenis pos tersuai dalam hasil carian laman web anda. Ini boleh dilakukan dengan menetapkan hujah 'exclude_from_search' kepada palsu apabila mendaftarkan jenis pos tersuai anda. Anda juga boleh menggunakan plugin atau kod tersuai untuk menyesuaikan fungsi carian laman web anda lagi.

Bagaimana saya memadam jenis pos tersuai di WordPress? yang mendaftarkan jenis post tersuai dari fail fungsi.php tema anda. Ingatlah untuk membuat sandaran laman web anda sebelum membuat sebarang perubahan pada kod tema anda. Selepas mengeluarkan kod, anda perlu membuang peraturan penulisan semula anda dengan melawat halaman Tetapan Permalinks.

Atas ialah kandungan terperinci Panduan Definitif untuk Jenis Pos Kustom WordPress. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn