Domanda

Sto cercando di realizzare qualcosa che ho pensato sarebbe abbastanza semplice da realizzare, ma sembra non ci sono veri e propri esempi disponibili per raggiungere i miei bisogni.

In sostanza ho un tipo messaggio personalizzato di "Statuto" per questo tipo di messaggio personalizzato Ho una nuova tassonomia che ho registrato che è stato creato in modo che le pubblicazioni di origine possono essere aggiunti.

Il mio obiettivo era quello di essere in grado di aggiungere un articolo attraverso questo tipo messaggio personalizzato e quindi selezionare la "pubblicazione fonte" applicabile dall'elenco termine in modo da poter visualizzare in cui l'articolo è venuto da.

Ora, il problema che sto avendo sembra essere semplice ... Tutto quello che sto cercando di fare è aggiungere alcuni campi aggiuntivi alla pagina in cui è possibile inserire ogni termine tassonomia. In questo caso vorrei aggiungere un campo per "URL" e includere un'immagine per ciascuna sorgente in modo da poter aggiungere un logo.

Quindi la domanda qui è ... come potrei fare per aggiungere un campo aggiuntivo per ogni termine?

Io parto dal presupposto se WordPress non permette questa funzionalità ingenuamente che in qualche modo il campo "descrizione" potrebbe essere utilizzato come un tipo di zona campi personalizzati e quindi che i dati possono essere memorizzati lì.

Poi sto cercando di naturalmente estrarre i dati fuori e visualizzarlo.

sono stato in grado di personalizzare i titoli delle colonne tassonomia nel caso qualcuno è l'interesse nello stesso modo che le colonne possono essere modificati per i tipi di messaggi personalizzati in questo modo:

// 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;
   }
È stato utile?

Soluzione

Ciao @ NetConstructor.com :

Ho scritto questo ultimo mese per qualcuno e può affrontare quello che state cercando. Si tratta di un esempio che si modifica, non è una soluzione pronta per l'uso completo:

<?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']);
    }
  }
}

La speranza aiuta.

Altri suggerimenti

Mi sono imbattuto in questo post nella mia ricerca per probabile che la stessa cosa, e non molto tempo dopo sono imbattuto in questo plug-in: ultimo Tassonomia Direttore . Io non sono solo ancora approvando, ma ho provato in un ambiente di test e penso che fa quello che stai cercando. Ci si sente un po 'goffo durante il recupero dei dati, ma che potrebbe solo io e la mia comprensione della documentazione sia.

Credo che il risparmio tassonomia meta custom / campi extra / campi personalizzati nella tabella opzione è qualcosa di uccidere il vostro prestazioni del sito. Come se il sito è pesante ponderato (un sacco di visitatori, un sacco di hits) poi per gran numero di tassonomia personalizzato tabella opzione sarà enorme. e aumenterà il tempo di caricamento per get_option () query per altri plugin o credo che questo ostacolerà le prestazioni molto. dovremmo salvare le cose inutili nella tabella o aumentare opzione righe nella tabella opzioni.

Il tuo tentativo di modificare la tassonomia con l'aggiunta di qualcosa che non è una tassonomia, che sarà solo confondere.

Invece è necessario aggiungere una casella di meta personalizzata al tipo di articolo postale, e salvare gli URL e gli URL di immagine dei campi personalizzati. Poi si può usare il codice per aggiungere colonne in functions.php per cercare quei campi personalizzati sul messaggio in questione utilizzando get_meta

Un modo più semplice e più facile sarebbe:

WordPress Taxonomies Extra Fields the easy way - Bainternet

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top