2013-10-21 44 views
1

我想自定義字段添加到我的分類,但是當我節省值update_metadata功能保存無關update_metadata是不是爲我工作

add_action('product_category_edit_form_fields', 'edit_product_category', 10, 2); 
function edit_product_category($tag, $taxonomy) 
{ 
    $product_category_sort_field = get_metadata($tag->taxonomy, $tag->term_id, 'product_category_sort_field', true); 
    ?> 
    <tr class="form-field"> 
     <th scope="row" valign="top"><label for="product_category_sort_field">sort</label></th> 
     <td> 
      <input type="text" style="width:20%" name="product_category_sort_field" id="product_category_sort_field" 
       value="<?php echo $product_category_sort_field; ?>"/><br /> 
     </td> 
    </tr> 
    <?php 
} 

add_action('edited_product_category', 'save_product_category', 10, 2); 
function save_product_category($term_id, $tt_id) 
{ 
    if (!$term_id) return; 

    if (isset($_POST['product_category_sort_field'])) { 
     update_metadata($_POST['taxonomy'], $term_id, 'product_category_sort_field', 
     $_POST['product_category_sort_field']); 
    } 
} 
+0

請注意發佈時的代碼格式。見http://stackoverflow.com/editing-help – brasofilo

回答

1

的問題是,有沒有wp_taxonomy_meta表,所以這不起作用:update_metadata($_POST['taxonomy'], ...

我見過的兩種解決方案:存儲在wp_options或使用字段描述來存儲JSON字符串。

在這裏,我只用一個wp_option的能量場,但我不知道這是否很好地進行擴展,如果你有條款成百上千。請注意,我們也使用錯誤的掛鉤。

add_action('product_edit_form_fields', 'edit_product_category', 10, 2); 
function edit_product_category($tag, $taxonomy) 
{ 
    $option = get_option('product_category_sort_field'); 
    $product_category_sort_field = ($option && isset($option[$tag->term_id])) 
     ? $option[$tag->term_id] : ''; 
    ?> 
    <tr class="form-field"> 
     <th scope="row" valign="top"><label for="product_category_sort_field">sort</label></th> 
     <td> 
      <input type="text" style="width:20%" name="product_category_sort_field" id="product_category_sort_field" 
       value="<?php echo $product_category_sort_field; ?>"/><br /> 
     </td> 
    </tr> 
    <?php 
} 

add_action('edited_term_taxonomy', 'save_product_category', 10, 2); 
function save_product_category($term_id, $taxonomy) 
{ 
    if (!$term_id) 
     return; 

    $option = get_option('product_category_sort_field'); 

    if (isset($_POST['product_category_sort_field'])) { 
     $option[$term_id] = $_POST['product_category_sort_field']; 
     update_option('product_category_sort_field', $option); 
    } 
} 

你會發現在WordPress的答案很多relevant posts,如thisthis

+0

你的答案幫了我很多。現在一切正常。感謝您的回覆,謝謝 – Andrey