Rumah >Tutorial CMS >WordTekan >Menambah kotak meta ke jenis pos di WordPress

Menambah kotak meta ke jenis pos di WordPress

Jennifer Aniston
Jennifer Anistonasal
2025-02-10 10:34:09690semak imbas

Adding Meta Boxes to Post Types in WordPress

pembina laman web WordPress atau pemaju sering menggunakan kotak meta. Artikel ini akan menyelam ke dalam persatuan dan integrasi metaboxes dengan jenis artikel tersuai, dan cara menggunakan data yang disimpan di front-end WordPress menggunakan metaboxes.

mata teras

    Gunakan fungsi
  • (gunung ke add_meta_box() tindakan) untuk menambah metaboxes ke mana -mana jenis pengeditan jenis artikel. Fungsi ini boleh digunakan untuk menambah metaboxes kepada pelbagai jenis artikel (seperti artikel, halaman, dan jenis artikel tersuai "Buku"), atau kepada semua jenis artikel yang sedia ada dan masa depan. add_meta_boxes
  • Metabox boleh dihadkan kepada jenis artikel tertentu dengan memasukkan nama jenis artikel ke cangkuk tindakan
  • . Fungsi add_meta_boxes digunakan untuk menyesuaikan jenis artikel, dan array parameternya mengandungi register_post_type(), yang nilainya adalah fungsi panggilan balik yang dipanggil apabila menetapkan metabox. register_meta_box_cb Fungsi
  • mengandungi medan bentuk metabox. global_notice_meta_box_callback Proses Cangkuk Tindakan Data disimpan ke kawasan teks apabila menyimpan artikel sebagai draf atau penerbitan. Data ini boleh digunakan dengan berkesan dengan memaparkan data yang dimasukkan dalam kotak meta sebelum menyimpan kandungan artikel yang sepadan. save_post

Tambahkan metabox ke skrin jenis artikel

Narayan Prusty telah meliputi kebanyakan, jika tidak semua, fungsi PHP, parameter, dan cangkuk tindakan yang membuat metaboxes.

Untuk menambah metabox ke mana -mana skrin penyuntingan jenis artikel, anda boleh menggunakan fungsi

dan melampirkannya ke tindakan add_meta_box(). add_meta_boxes

Kod berikut menambah metabox ke skrin penyuntingan artikel. Perhatikan fungsi

, yang digunakan untuk memaparkan medan borang dalam metabox. Kami akan memperkenalkannya secara terperinci kemudian. global_notice_meta_box_callback

<code class="language-php">function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback',
        'post'
    );
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );</code>
Untuk menambah metabox ke pelbagai skrin jenis pos (artikel, halaman, dan jenis post "buku"), buat artikel jenis artikel, gelung melalui array, dan tambahkannya ke jawatan ini menggunakan

dalam jenis. add_meta_box()

<code class="language-php">function global_notice_meta_box() {
    $screens = array( 'post', 'page', 'book' );
    foreach ( $screens as $screen ) {
        add_meta_box(
            'global-notice',
            __( '全局公告', 'sitepoint' ),
            'global_notice_meta_box_callback',
            $screen
        );
    }
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );</code>
Untuk menambah metabox kepada semua jenis artikel yang sedia ada dan masa depan, gunakan

untuk mendapatkan artikel jenis artikel dan menggantikan nilai di atas get_post_types() dengan itu. $screen

<code class="language-php">function global_notice_meta_box() {
    $screens = get_post_types();
    foreach ( $screens as $screen ) {
        add_meta_box(
            'global-notice',
            __( '全局公告', 'sitepoint' ),
            'global_notice_meta_box_callback',
            $screen
        );
    }
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );</code>
Metabox juga boleh ditambah kepada semua jenis pos sedia ada dan baru dengan menghilangkan parameter ketiga (

): $screen

<code class="language-php">function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback'
    );
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );</code>
anda juga boleh mengehadkan metabox ke jenis artikel tertentu dengan melampirkan nama jenis artikel (dalam kes ini "buku") ke cangkuk tindakan

: add_meta_boxes

Fungsi
<code class="language-php">function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback'
    );
}
add_action( 'add_meta_boxes_book', 'global_notice_meta_box' );</code>

digunakan untuk menyesuaikan jenis artikel, dan array parameternya mengandungi register_post_type(), dan nilainya adalah fungsi panggil balik yang dipanggil apabila menetapkan metabox. register_meta_box_cb

Katakan kita membuat jenis artikel tersuai yang dipanggil "Buku" menggunakan kod berikut:

<code class="language-php">function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback',
        'post'
    );
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );</code>

Menambah definisi fungsi global_notice_meta_box dalam fungsi register_meta_box_cb php (nilai add_meta_box() di atas) akan menambah metabox ke skrin penyuntingan jenis artikel "buku".

Sekali lagi, ini adalah contoh kami global_notice_meta_box fungsi.

<code class="language-php">function global_notice_meta_box() {
    $screens = array( 'post', 'page', 'book' );
    foreach ( $screens as $screen ) {
        add_meta_box(
            'global-notice',
            __( '全局公告', 'sitepoint' ),
            'global_notice_meta_box_callback',
            $screen
        );
    }
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );</code>

Setakat ini, kami telah mempelajari pelbagai cara untuk mendaftar atau menambah metaboxes di WordPress. Kami juga perlu membuat fungsi global_notice_meta_box_callback yang akan mengandungi medan bentuk metabox kami.

Berikut adalah kod untuk fungsi global_notice_meta_box_callback yang akan mengandungi medan kawasan teks dalam metabox.

<code class="language-php">function global_notice_meta_box() {
    $screens = get_post_types();
    foreach ( $screens as $screen ) {
        add_meta_box(
            'global-notice',
            __( '全局公告', 'sitepoint' ),
            'global_notice_meta_box_callback',
            $screen
        );
    }
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );</code>

Adding Meta Boxes to Post Types in WordPress save_post Proses Cangkuk Tindakan Data disimpan ke kawasan teks apabila menyimpan artikel sebagai draf atau penerbitan.

<code class="language-php">function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback'
    );
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );</code>

Untuk menggunakan data yang dimasukkan di kawasan teks Metabox, kami akan memaparkan data sebelum dipaparkan untuk menyimpan kandungan artikel yang sepadan.

<code class="language-php">function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback'
    );
}
add_action( 'add_meta_boxes_book', 'global_notice_meta_box' );</code>

Penjelasan kod

3

global_notice_before_post Di dalam fungsi, kami menyertakan pembolehubah Global the_content, yang mengandungi objek WP_POST artikel yang sedang dilihat. $content

Ambil pengumuman global yang disimpan untuk artikel yang diberikan oleh

dan simpannya kepada pembolehubah $post.

kemudian bungkus pengumuman dalam div dan simpannya dalam pembolehubah get_post_meta. $global_notice

Akhirnya, sambungkan

dengan pengumuman global dengan $notice dengan kandungan artikel sebenar.

Berikut adalah tangkapan skrin artikel dengan pengumuman global sebelum kandungan artikel. $notice $content

Ringkasan

Adding Meta Boxes to Post Types in WordPress

Dalam tutorial ini, kami mempelajari pelbagai cara untuk mendaftarkan metaboxes dalam skrin pengurusan WordPress dan bagaimana untuk mengehadkannya ke jenis artikel.

kami juga mengkaji cara menambah medan borang ke metabox dan bagaimana untuk menyimpan data input apabila menyimpan atau menerbitkan artikel.

Akhirnya, kami memperkenalkan cara meletakkan data yang dimasukkan ke dalam metabox menjadi amalan.

Dalam artikel masa depan, kami akan merangkumi cara menambah tab Bantuan Konteks ke skrin Pengurusan Jenis Artikel.

Jika anda mempunyai sebarang pertanyaan atau cadangan, sila hubungi mereka dalam komen.

Soalan Lazim untuk Menambah Metaboxes ke Jenis Artikel di WordPress

  • Apakah metabox dalam WordPress? Metaboxes dalam WordPress adalah kotak draggable yang dipaparkan dalam antara muka admin. Kotak ini digunakan untuk memaparkan medan input tambahan, yang membolehkan pengguna menyesuaikan fungsi dan susun atur pelbagai jenis artikel. Mereka boleh ditambah kepada artikel, halaman, dan jenis pos tersuai. Metaboxes boleh mengandungi pelbagai jenis bidang, termasuk teks, kotak semak, pilihan pemilihan, dan banyak lagi.

  • Bagaimana untuk menambah metaboxes ke jenis pos tersuai di WordPress? Untuk menambah metabox ke jenis pos tersuai di WordPress, anda perlu menggunakan fungsi add_meta_box(). Fungsi ini membolehkan anda menentukan ID Metabox, tajuk, fungsi panggil balik, jenis artikel, konteks, dan keutamaan. Fungsi panggil balik digunakan untuk mengeluarkan kandungan metabox.

  • Bolehkah saya menambah pelbagai metaboxes ke satu jenis artikel? Ya. Setiap metabox harus mempunyai ID yang unik untuk mengelakkan konflik. Anda boleh menggunakan fungsi add_meta_box() beberapa kali dan menggunakan parameter yang berbeza untuk menambah pelbagai metabox.

  • Bagaimana untuk menyimpan data yang dimasukkan ke dalam medan metabox? Untuk menyimpan data yang dimasukkan ke dalam medan Metabox, anda perlu melampirkan fungsi ke tindakan save_post. Fungsi ini harus memeriksa Nonce, mengesahkan keizinan pengguna semasa, dan kemudian gunakan fungsi update_post_meta() atau add_post_meta() untuk menyimpan data metabox ke pangkalan data.

  • Bagaimana untuk memaparkan data metabox di hujung depan? Untuk memaparkan data metabox di hujung depan, anda boleh menggunakan fungsi get_post_meta() dalam gelung. Fungsi ini mengambil data metabox dari pangkalan data dan mengembalikannya sebagai rentetan, yang kemudiannya boleh output dalam fail templat.

  • Bolehkah saya menambah metaboxes ke halaman dan artikel? Ya. Apabila menggunakan fungsi add_meta_box(), anda boleh menentukan jenis artikel sebagai "halaman" untuk menambah metabox ke halaman.

  • Bagaimana untuk memadam metabox dari jenis artikel? fungsi boleh digunakan. Fungsi ini memerlukan ID Metabox dan jenis artikel sebagai parameter. remove_meta_box()

  • Bolehkah saya menyesuaikan kedudukan metabox dalam skrin penyuntingan artikel? Ya. Parameter fungsi add_meta_box() menentukan kedudukan metabox. Nilai yang mungkin adalah "normal", "sampingan", dan "maju". context

  • Bolehkah saya menambah metabox ke jenis pos tersuai yang dibuat oleh plugin? Ya. Anda hanya perlu mengetahui slug untuk jenis artikel tersuai dan menggunakannya sebagai parameter dalam fungsi add_meta_box(). post_type

  • Bagaimana gaya metaboxes dan bidang mereka? Anda boleh menggunakan CSS untuk gaya metaboxes dan bidang mereka. Metabox akan mempunyai kelas "Postbox", di mana anda boleh menambah kelas anda sendiri ke medan di Metabox. Anda kemudian boleh mencari kelas ini dalam CSS untuk memohon gaya.

Atas ialah kandungan terperinci Menambah kotak meta ke jenis pos di 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