it-swarm-id.com

Menambahkan Bidang Kustom ke Input Taksonomi: Panel

Saya mencari untuk mencapai sesuatu yang saya pikir akan cukup sederhana untuk dicapai tetapi tampaknya tidak ada contoh nyata yang tersedia untuk mencapai kebutuhan saya.

Pada dasarnya saya memiliki jenis posting kustom "Artikel" untuk jenis posting kustom ini saya memiliki taksonomi baru yang telah saya daftarkan yang telah dibuat sehingga sumber publikasi dapat ditambahkan.

Tujuan saya adalah untuk dapat menambahkan artikel melalui jenis posting khusus ini dan kemudian memilih "publikasi sumber" yang berlaku dari daftar istilah sehingga saya dapat menampilkan dari mana artikel itu berasal.

Sekarang, masalah yang saya miliki tampaknya sederhana ... Yang saya coba lakukan adalah menambahkan beberapa bidang tambahan ke halaman di mana Anda dapat memasukkan setiap istilah taksonomi. Dalam hal ini saya ingin menambahkan bidang untuk "URL" dan memasukkan gambar untuk setiap sumber sehingga saya dapat menambahkan logo.

Jadi pertanyaannya di sini adalah ... bagaimana saya bisa menambahkan bidang tambahan untuk setiap istilah?

Saya berasumsi jika wordpress tidak mengizinkan fungsi ini secara naif bahwa entah bagaimana bidang "deskripsi" dapat digunakan sebagai jenis area bidang khusus dan dengan demikian data dapat disimpan di sana.

Kemudian saya mencoba mengekstrak data dan menampilkannya.

Saya dapat menyesuaikan judul kolom taksonomi jika ada orang yang tertarik dengan cara yang sama dengan kolom yang dapat dimodifikasi untuk jenis posting kustom seperti ini:

// CUSTOM TAXONOMY COLUMNS FOR CONTENT SOURCES
   add_filter("manage_edit-content_sources_columns", 'content_sources_columns');    
   function content_sources_columns($content_sources_columns) {
    $new_columns = array(
        'cb' => '<input type="checkbox" />',
        'name' => __('Name'),
//      'source_image' => '',
        'description' => __('URL'),
        'slug' => __('Slug'),
        'posts' => __('Posts')
        );
    return $new_columns;
   }
4

Hai @ NetConstructor.com :

Saya menulis ini bulan lalu untuk seseorang dan mungkin membahas apa yang Anda cari. Ini adalah contoh yang akan Anda modifikasi, bukan solusi siap pakai lengkap:

<?php
/*
 * Example code showing how to hook WordPress to add fields to the taxonomny term edit screen.
 * 
 * This example is meant to show how, not to be a drop in example.
 *
 * This example was written in response to this question:
 *
 *    http://lists.automattic.com/pipermail/wp-hackers/2010-August/033671.html
 *
 * By:
 *
 *    Mike Schinkel (http://mikeschinkel.com/custom-wordpress-plugins/)
 *
 * NOTE:
 *
 *    This could easily become a plugin if it were fleshed out.
 *    A class with static methods was used to minimize the variables & functions added to the global namespace.
 *    wp_options was uses with one option be tax/term instead of via a serialize array because it aids in retrival
 *    if there get to be a large number of tax/terms types. A taxonomy/term meta would be the prefered but WordPress
 *    does not have one.
 *
 * This example is licensed GPLv2.
 *
 */

// These are helper functions you can use elsewhere to access this info
function get_taxonomy_term_type($taxonomy,$term_id) {
  return get_option("_term_type_{$taxonomy}_{$term->term_id}");
}
function update_taxonomy_term_type($taxonomy,$term_id,$value) {
  update_option("_term_type_{$taxonomy}_{$term_id}",$value);
}

//This initializes the class.
TaxonomyTermTypes::on_load();

//This should be called in your own code. This example uses two taxonomies: 'region' & 'opportunity'
TaxonomyTermTypes::register_taxonomy(array('region','opportunity'));

class TaxonomyTermTypes {
  //This initializes the hooks to allow saving of the
  static function on_load() {
    add_action('created_term',array(__CLASS__,'term_type_update'),10,3);
    add_action('edit_term',array(__CLASS__,'term_type_update'),10,3);
  }
  //This initializes the hooks to allow adding the dropdown to the form fields
  static function register_taxonomy($taxonomy) {
    if (!is_array($taxonomy))
      $taxonomy = array($taxonomy);
    foreach($taxonomy as $tax_name) {
      add_action("{$tax_name}_add_form_fields",array(__CLASS__,"add_form_fields"));
      add_action("{$tax_name}_edit_form_fields",array(__CLASS__,"edit_form_fields"),10,2);
    }
  }
  // This displays the selections. Edit it to retrieve
  static function add_form_fields($taxonomy) {
    echo "Type " . self::get_select_html('text');
  }
  // This displays the selections. Edit it to retrieve your own terms however you retrieve them.
  static function get_select_html($selected) {
    $selected_attr = array('text'=>'','user'=>'','date'=>'','etc'=>'');
    $selected_attr[$selected] = ' selected="selected"';
    $html =<<<HTML
<select id="tag-type" name="tag-type">
  <option value="text"{$selected_attr['text']}>Text</option>
  <option value="user"{$selected_attr['user']}>User</option>
  <option value="date"{$selected_attr['date']}>Date</option>
  <option value="etc" {$selected_attr['etc']}>Etc.</option>
</select>
HTML;
    return $html;
  }
    // This a table row with the drop down for an edit screen
    static function edit_form_fields($term, $taxonomy) {
    $selected = get_option("_term_type_{$taxonomy}_{$term->term_id}");
    $select = self::get_select_html($selected);
    $html =<<<HTML
<tr class="form-field form-required">
  <th scope="row" valign="top"><label for="tag-type">Type</label></th>
  <td>$select</td>
</tr>
HTML;
    echo $html;
  }
  // These hooks are called after adding and editing to save $_POST['tag-term']
  static function term_type_update($term_id, $tt_id, $taxonomy) {
    if (isset($_POST['tag-type'])) {
      update_taxonomy_term_type($taxonomy,$term_id,$_POST['tag-type']);
    }
  }
}

Semoga ini bisa membantu.

5
MikeSchinkel

Saya pikir menyimpan meta taksonomi/bidang tambahan/bidang khusus dalam tabel opsi adalah sesuatu yang mematikan kinerja situs Anda. Seperti jika situs Anda berbobot berat (banyak pengunjung, banyak klik) maka untuk sejumlah besar taksonomi khusus, tabel opsi akan sangat besar. dan itu akan meningkatkan waktu buka untuk get_option () permintaan untuk plugin lain atau saya pikir ini akan banyak menghambat kinerja. kita harus menyimpan hal-hal yang tidak perlu dalam tabel opsi atau menambah baris dalam tabel opsi.

2
Manchumahara

Datang melintasi pos ini dalam pencarian saya untuk kemungkinan hal yang sama, dan tidak lama setelah menemukan plug in ini: Ultimate Taxonomy Manager . Saya belum mendukungnya dulu, tapi saya sudah mencobanya di lingkungan pengujian dan saya pikir itu melakukan apa yang Anda cari. Rasanya agak kikuk ketika mengambil data, tapi itu bisa saja saya dan pemahaman saya tentang dokumentasi.

2
jageo

Cara yang lebih sederhana dan mudah adalah:

WordPress Taxonomies Extra Fields the easy way - Bainternet

1
Bainternet

Anda mencoba memodifikasi taksonomi dengan menambahkan sesuatu yang bukan taksonomi, yang hanya akan membingungkan.

Alih-alih, Anda perlu menambahkan kotak meta khusus ke jenis posting artikel, dan menyimpan url dan url gambar di bidang khusus. Kemudian Anda akan menggunakan kode untuk menambahkan kolom di functions.php untuk mencari bidang khusus tersebut pada posting yang relevan menggunakan get_meta

1
Tom J Nowell