it-swarm-ko.tech

분류 입력에 사용자 정의 필드 추가 : 패널

나는 달성하기가 상당히 쉬울 것이라고 생각한 것을 성취하려고 노력하고 있지만, 나의 필요를 성취 할 수있는 실제적인 예는 없다.

본질적으로 나는이 사용자 정의 게시 유형에 대한 "기사"의 사용자 정의 게시 유형을 가지고 있는데, 이는 소스 출판물을 추가 할 수 있도록 작성된 새로운 분류 분류를 가지고 있습니다.

내 목표는이 사용자 정의 게시 유형을 통해 기사를 추가 한 다음 용어 목록에서 해당 "소스 출판물"을 선택하여 기사의 출처를 표시 할 수있게하는 것이 었습니다.

이제 내가 가지고있는 문제는 간단 해 보입니다 ... 내가하려는 것은 각 분류학 용어를 입력 할 수있는 페이지에 몇 개의 추가 필드를 추가하는 것입니다. 이 경우 "URL"필드를 추가하고 각 소스에 이미지를 포함시켜 로고를 추가 할 수 있습니다.

여기서 질문은 ... 각 용어에 추가 필드를 추가하는 방법은 무엇입니까?

WordPress가이 기능을 순진하게 허용하지 않는다면 어떻게 든 "설명"필드를 사용자 정의 필드 영역 유형으로 사용할 수 있으므로 데이터를 저장할 수 있습니다.

그런 다음 데이터를 추출하여 표시하려고합니다.

나는 다음과 같이 사용자 정의 게시물 유형에 대해 열을 수정할 수있는 것과 같은 방식으로 관심있는 사람이있을 경우에 분류 열 제목을 사용자 정의 할 수있었습니다.

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

안녕 @ NetConstructor.com :

나는 지난 달이 누군가를 위해 썼다. 그리고 그것은 당신이 찾고있는 것을 해결할지도 모른다. 바로 사용할 수있는 완벽한 솔루션이 아니라 수정하려는 예제입니다.

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

희망이 도움이됩니다.

5
MikeSchinkel

나는 옵션 테이블에 사용자 지정 분류법 메타/추가 필드/사용자 정의 필드를 저장하는 것이 사이트 성능을 저하시키는 것이라고 생각합니다. 귀하의 사이트가 무거운 가중치 (방문자가 많고 많은 조회수가 많음)의 경우처럼 맞춤 분류가 많으면 옵션 표가 커집니다. 다른 플러그인에 대한 get_option () 쿼리의로드 시간이 늘어나거나 성능이 많이 저하 될 것이라고 생각합니다. 우리는 옵션 테이블에 불필요한 것들을 저장하거나 옵션 테이블의 행을 증가시켜야합니다.

2
Manchumahara

가능성이 똑같은 것에 대한이 탐구에서이 게시물을 봤는데, 얼마 지나지 않아이 플러그를 발견했습니다. Ultimate Taxonomy Manager . 나는 아직 그것을지지하지 않고 있지만, 테스트 환경에서 시도해 보았고, 당신이 찾고있는 것을 수행한다고 생각합니다. 그것은 데이터를 검색 할 때 약간 서투른 느낌이 들지만, 그것은 저와 저의 문서에 대한 이해가 될 수 있습니다.

2
jageo

더 간단하고 쉬운 방법은 다음과 같습니다.

WordPress Taxonomies Extra Fields the easy way - Bainternet

1
Bainternet

Taxonomy가 아닌 것을 추가하여 분류법을 수정하려는 경우 혼란 스러울뿐입니다.

대신 기사 게시물 유형에 맞춤 메타 박스를 추가하고 맞춤 입력란에 urls 및 image URL을 저장해야합니다. 그런 다음 코드를 사용하여 functions.php의 열을 추가하여 get_meta를 사용하여 관련 게시물에서 해당 사용자 정의 필드를 찾습니다.

1
Tom J Nowell