it-swarm-id.com

Membuat Standar Bidang Kustom di Admin UI

Saya telah menambahkan beberapa custom_post_types berbeda ke instalasi Wordpress 3 saya. Mereka semua sedikit berbeda satu sama lain, dan harus menyimpan informasi unik dalam custom_fields. Tetapi sementara satu menyimpan product_id, yang lain tidak. Satu akan memiliki source_url dan yang lainnya tidak. Daripada harus menginstruksikan editor saya pada bidang khusus mana yang harus digunakan dengan posting khusus mana, bagaimana saya bisa membuat setiap posting kustom menyertakan bidang khusus sebagai bagian dari UI itu sendiri?

Jika Anda mengunjungi "daily_cartoon" Anda akan memiliki layar yang hanya meminta judul , caption , dan media .
Jika Anda mengunjungi "daily_product" Anda akan memiliki layar yang hanya meminta judul , ringkasan harga , , dll.

7
Sampson

Hai @ Jonathan Sampson :

Ada beberapa plugin untuk membuat Jenis Posting Kustom lebih mudah dan beberapa memungkinkan Anda untuk mendefinisikan Bidang Kustom juga, tanpa urutan tertentu:

Seperti yang saya sebutkan di atas, saya telah mengerjakan salah satu yang tidak menyediakan Antarmuka Pengguna seperti ini untuk API yang bisa diperluas untuk jenis bidang yang kompleks (dan yang sederhana juga.) Tapi setelah menghabiskan satu jam mencoba untuk mengemasnya, saya menyadari itu belum siap belum didistribusikan. Mungkin dalam beberapa minggu.

Plugin ini tercantum di atas harus memenuhi kebutuhan dasar Anda untuk saat ini dan saya akan mencoba untuk membuat tambang saya kompatibel dengan data yang disimpan oleh semua ini di masa depan jika Anda memutuskan untuk menggunakan tambang di masa depan.

Anda juga mungkin menemukan posting ini sedikit bantuan juga:

4
MikeSchinkel

anda dapat menambahkan meta_boxes agar data bidang khusus disimpan di dalamnya. karena add_meta_box dapat disetel sesuai dengan post_type, ini akan memungkinkan Anda untuk menambahkan meta_box yang berbeda ke berbagai jenis posting.

lihat ini pos untuk contoh lengkap mengubah jenis posting kustom baru/edit scree.

5
hannit cohen

Baru-baru ini saya perlu mengatasi masalah yang sangat mirip saat bekerja dalam suatu tema. Dasar kode berasal dari pos ini dan saya telah memodifikasi beberapa kode

Berikut ini adalah bagian pertama dari kode yang saya modifikasi.

    add_action('init', 'limited_post_type');
function my_custom_limited_post_type() 
{
  $labels = array(
    'name' => _x('Limited Post Type', 'post type general name'),
    'singular_name' => _x('Film - DVD', 'post type singular name')
  );
  $args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true, 
    'query_var' => true,
    'rewrite' => true,
    'capability_type' => 'post',
    'hierarchical' => false,
    'menu_position' => null,
    'supports' => array('title','editor','author','thumbnail','excerpt', 'page-attributes','custom-fields' ),
    'show_in_nav_menus' => true
  ); 
  register_post_type('limited_post_type', $args);
}

Berikut ini adalah bagian kedua dari kode yang saya modifikasi.

foreach ( $scope as $scopeItem ) {
       switch ( $scopeItem ) {
           case "post": {
             // Output on any post screen
             if ( basename( $_SERVER['SCRIPT_FILENAME'] )=="post-new.php" || $post->post_type=="post" )
             $output = true;
             break;}              
            case "page": {
                  // Output on any page screen
                  if ( basename( $_SERVER['SCRIPT_FILENAME'] )=="page-new.php" || $post->post_type=="page" )
            $output = true;
            break;}
             case "limited_post_type": {
                                // Output on limited post_type onlye
            if ((basename( $_SERVER['SCRIPT_FILENAME'] )=="post-new.php" && $post->post_type=="limited_post_type" ) || (basename( $_SERVER['SCRIPT_FILENAME'] )=="post.php" && $post->post_type=="film_dvd" ))
                   $output = true;
                   break;
                  }

Jika Anda suka, silakan kirim saya pesan dan saya dengan senang hati akan mengirim Anda file functions.php saya untuk referensi Anda. Ini jelas merupakan cara untuk mewujudkannya saat saya menjalani banyak malam mencabut rambut seperti diri Anda sendiri.

0
jnolte