it-swarm-eu.dev

Přidání vlastního pole do taxonomického vstupu: Panel

Snažím se dosáhnout něčeho, o čem jsem si myslel, že by bylo poměrně jednoduché dosáhnout, ale zdá se, že pro dosažení mých potřeb neexistují žádné skutečné příklady.

V podstatě mám vlastní příspěvek typu "Články" pro tento typ vlastního příspěvku mám novou taxonomii, kterou jsem zaregistroval a která byla vytvořena tak, aby mohly být přidány zdrojové publikace.

Mým cílem bylo být schopen přidat článek přes tento typ vlastního příspěvku a pak vybrat příslušný "zdroj publikace" ze seznamu termínů, abych mohl zobrazit, odkud článek pochází.

Nyní se zdá, že problém, který mám, je jednoduchý ... Jediné, co se snažím udělat, je přidat na stránku některá další pole, do kterých můžete zadat každý termín taxonomie. V tomto případě bych chtěl přidat pole pro adresu URL a zahrnout obrázek pro každý zdroj, abych mohl přidat logo.

Takže otázka je zde ... jak bych šel o přidávání dalšího pole do každého termínu?

Předpokládám, že pokud wordpress neumožňuje tuto funkci naivně, že nějakým způsobem by pole "popis" mohlo být využito jako typ oblasti vlastních polí, a proto by tam mohla být data uložena.

Pak se snažím vyjmout data a zobrazit je.

Názvy sloupců taxonomie jsem mohl přizpůsobit v případě, že je někdo zajímán stejným způsobem, jakým lze sloupce upravit pro vlastní typy příspěvků takto:

// 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

Hi @ NetConstructor.com :

Napsal jsem to minulý měsíc pro někoho a může se zabývat tím, co hledáte. Je to příklad, který byste upravili, ne kompletní řešení připravené k použití:

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

Doufám, že to pomůže.

5
MikeSchinkel

Myslím, že ukládání vlastní taxonomie meta/extra pole/vlastní pole v tabulce možností je něco, co zabíjí výkon vašeho webu. Stejně jako v případě, že váš web je těžký vážený (spousta návštěvníků, spousta hitů), pak pro velké množství vlastní taxonomie bude tabulka možností obrovská. a prodlouží dobu načítání dotazu get_option () pro další pluginy, nebo si myslím, že to bude hodně brzdit výkon. zbytečné věci bychom měli uložit do tabulky možností nebo zvýšit řádky v tabulce možností.

2
Manchumahara

Přišel přes tento post v mém hledání pravděpodobně to samé, a ne dlouho poté, co narazil na tento plug in: Ultimate Taxonomy Manager . Ještě jsem to neschvalil, ale vyzkoušel jsem to v testovacím prostředí a myslím, že to, co hledáte. Při načítání dat je to trochu neohrabané, ale to by mohlo být jen já a moje pochopení dokumentace.

2
jageo

Jednodušší a jednodušší způsob by byl:

WordPress Taxonomies Extra Fields the easy way - Bainternet

1
Bainternet

Snažíte se změnit taxonomii přidáním něčeho, co není taxonomie, která bude jen matoucí.

Místo toho budete muset přidat vlastní meta box do typu článku článku a uložit adresy URL a adresy URL do vlastních polí. Pak použijete kód pro přidání sloupců v function.php, abyste mohli vyhledávat tato vlastní pole na příslušném příspěvku pomocí get_meta

1
Tom J Nowell