2013-10-21 4 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); 
    } 
} 

당신은 thisthis 같은, 워드 프레스 답변에서 relevant posts을 많이 찾을 수 있습니다.

+0

귀하의 답변에 많은 도움이되었습니다. 이제 모든 것이 잘됩니다. 답장을 고맙게 생각합니다. 감사합니다. – Andrey

관련 문제