Pregunta

Estoy buscando para lograr algo, que me di cuenta de que sería bastante fácil de lograr, pero parece que no hay ejemplos reales disponibles para lograr mis necesidades.

En esencia Tengo un tipo de envío personalizado de "artículos" para este tipo de envío personalizado Tengo una nueva taxonomía que he registrada que haya sido creado para que las publicaciones de origen pueden ser añadidos.

Mi objetivo era ser capaz de añadir un artículo a través de este tipo de envío personalizado y luego seleccione la opción "fuente de publicación" procede de la lista plazo para que pudiera mostrar donde el artículo vino.

Ahora, el problema que estoy teniendo parece ser simple ... Todo lo que estoy tratando de hacer es añadir algunos campos adicionales a la página donde puede introducir cada término taxonomía. En este caso me gustaría añadir un campo para "URL" e incluir una imagen para cada fuente, de manera que pueda añadir un logotipo.

Así que la pregunta aquí es ... ¿cómo iba a ir sobre la adición de un campo adicional a cada término?

Estoy asumiendo que si wordpress no permite esta funcionalidad ingenuamente que de alguna manera el campo "Descripción" podría ser utilizado como una especie de zona de campos personalizados y de este modo que los datos pueden ser almacenados allí.

A continuación, estoy tratando de extraer, por supuesto, los datos fuera y lo mostrará.

Yo era capaz de personalizar los títulos de las columnas taxonomía en caso de que alguien es el interés de la misma manera que las columnas se pueden modificar para este tipo de correos personalizados como esto:

// 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;
   }
¿Fue útil?

Solución

Hola @ NetConstructor.com

he escrito este último mes para alguien y que pueda hacer frente a lo que busca. Es un ejemplo que debería modificar, no es una solución lista para su 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']);
    }
  }
}

Espero que ayuda.

Otros consejos

encontré con este post en mi búsqueda de probabilidades lo mismo, y no mucho después encontré con este tapón en: último Taxonomía Director . No estoy apoyándola todavía, pero he probado en un entorno de prueba y creo que hace lo que usted está buscando. Se siente un poco torpe al recuperar los datos, pero que podría ser sólo yo y mi comprensión de la documentación sea.

Creo que el ahorro de encargo taxonomía meta / campos extra / campos personalizados en la tabla de opciones es algo matando el rendimiento de su sitio. Al igual que si su sitio se pondera pesada (un montón de visitantes, un montón de éxitos), entonces para gran número de taxonomía personalizada la tabla de opciones será enorme. y aumentará el tiempo de carga de get_option consulta () para otros plugins o creo que esto va a dificultar mucho el rendimiento. debemos guardar cosas innecesarias en la tabla o incrementar las opciones de filas en la tabla de opciones.

Su intentar modificar la taxonomía mediante la adición de algo que no es una taxonomía, que sólo se confunden.

En su lugar, tendrá que añadir una caja meta personalizado al tipo de artículo posterior, y guardar las direcciones URL y direcciones URL de imagen de campos personalizados. De allí tendría que utilizar el código para agregar columnas en functions.php de consultar dichas campos personalizados en el mensaje pertinente utilizando get_meta

Una manera más simple y más fácil sería:

WordPress Taxonomies Extra Fields the easy way - Bainternet

Licenciado bajo: CC-BY-SA con atribución
scroll top