it-swarm-vi.tech

Thêm trường tùy chỉnh vào đầu vào phân loại: Bảng điều khiển

Tôi đang tìm kiếm để đạt được một cái gì đó mà tôi nghĩ sẽ khá đơn giản để thực hiện nhưng có vẻ như không có ví dụ thực tế nào có sẵn để đạt được nhu cầu của tôi.

Về cơ bản tôi có một loại "Bài viết" tùy chỉnh cho loại bài đăng tùy chỉnh này Tôi có một phân loại mới mà tôi đã đăng ký được tạo để có thể thêm các ấn phẩm nguồn.

Mục tiêu của tôi là có thể thêm một bài viết thông qua loại bài đăng tùy chỉnh này và sau đó chọn "ấn phẩm nguồn" có thể áp dụng từ danh sách thuật ngữ để tôi có thể hiển thị bài viết đó đến từ đâu.

Bây giờ, vấn đề tôi gặp phải có vẻ đơn giản ... Tất cả những gì tôi đang cố gắng làm là thêm một số trường bổ sung vào trang nơi bạn có thể nhập từng thuật ngữ phân loại. Trong trường hợp này, tôi muốn thêm một trường cho "URL" và bao gồm một hình ảnh cho mỗi nguồn để tôi có thể thêm logo.

Vì vậy, câu hỏi ở đây là ... làm thế nào tôi có thể thêm một trường bổ sung cho mỗi thuật ngữ?

Tôi giả sử nếu wordpress không cho phép chức năng này một cách ngây thơ rằng bằng cách nào đó, trường "mô tả" có thể được sử dụng như một loại khu vực trường tùy chỉnh và do đó dữ liệu có thể được lưu trữ ở đó.

Sau đó, tôi đang cố gắng trích xuất dữ liệu ra và hiển thị nó.

Tôi đã có thể tùy chỉnh các tiêu đề cột phân loại trong trường hợp bất kỳ ai cũng quan tâm giống như cách các cột có thể được sửa đổi cho các loại bài đăng tùy chỉnh như thế này:

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

Xin chào @ NetConstructor.com :

Tôi đã viết tháng này cho ai đó và nó có thể giải quyết những gì bạn đang tìm kiếm. Đây là một ví dụ bạn sẽ sửa đổi, không phải là một giải pháp sẵn sàng sử dụng hoàn chỉnh:

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

Hy vọng nó giúp.

5
MikeSchinkel

Tôi nghĩ rằng việc lưu meta/trường bổ sung/trường tùy chỉnh trong bảng tùy chọn là thứ gì đó giết chết hiệu suất trang web của bạn. Giống như nếu trang web của bạn có trọng số lớn (nhiều khách truy cập, nhiều lượt truy cập) thì đối với số lượng lớn phân loại tùy chỉnh, bảng tùy chọn sẽ rất lớn. và nó sẽ tăng thời gian tải cho truy vấn get_option () cho các plugin khác hoặc tôi nghĩ rằng điều này sẽ cản trở hiệu suất rất nhiều. chúng ta nên lưu những thứ không cần thiết trong bảng tùy chọn hoặc tăng hàng trong bảng tùy chọn.

2
Manchumahara

Đã xem qua bài đăng này trong nhiệm vụ của tôi về khả năng tương tự, và không lâu sau đó đã bắt gặp trình cắm này: Trình quản lý phân loại cuối cùng . Tôi chưa chứng thực nó, nhưng tôi đã thử nó trong một môi trường thử nghiệm và tôi nghĩ nó làm những gì bạn đang tìm kiếm. Nó cảm thấy một chút vụng về khi lấy dữ liệu, nhưng đó chỉ có thể là tôi và sự hiểu biết của tôi về tài liệu.

2
jageo

Một cách đơn giản và dễ dàng hơn sẽ là:

WordPress Taxonomies Extra Fields the easy way - Bainternet

1
Bainternet

Việc bạn cố gắng sửa đổi phân loại bằng cách thêm một cái gì đó không phải là phân loại, điều này sẽ chỉ gây nhầm lẫn.

Thay vào đó, bạn sẽ cần thêm một hộp meta tùy chỉnh vào loại bài đăng và lưu các url và url hình ảnh trong các trường tùy chỉnh. Sau đó, bạn sẽ sử dụng mã để thêm các cột trong hàm.php để tìm kiếm các trường tùy chỉnh đó trên bài đăng có liên quan bằng cách sử dụng get_meta

1
Tom J Nowell