2016-03-29 26 views
0

私はproduct_categoriesという名前のカスタムタクソノミーを作成しました。カテゴリ画像のバナー画像カスタムタクソノミーのソート順が機能しない

  • ため

    1. とソート順のため

    2. これは3つのフィールドがあります。

    ソート順の入力も10個のカテゴリに追加されています。

    これを並べ替える順番で表示したいが、動作していない。

    は、Pt-カテゴリにソート順の入力は、この

    <tr class="form-field"> 
    <th scope="row" valign="top"><label for="cat_sort_order"><?php _e('Product Sort Order'); ?></label></th> 
    <td> 
        <input id="banner-url" name="term_meta[sort_order]" type="text" style="width: 100%;" value="<?php echo $term_meta['sort_order'] ? $term_meta['sort_order'] : ''; ?>" /> 
        <span class="description"><?php _e('&nbsp;'); ?></span> 
    </td> 
    

    保存の目的球は、カテゴリが呼ばれここでは、この

    function save_product_categories_custom_fields($term_id) 
        { 
        if (isset($_POST['term_meta'])) { 
         $t_id = $term_id; 
         $term_meta = get_option("taxonomy_term_$t_id"); 
         $cat_keys = array_keys($_POST['term_meta']); 
         foreach ($cat_keys as $key) { 
          if (isset($_POST['term_meta'][$key])) { 
           $term_meta[$key] = $_POST['term_meta'][$key]; 
          } 
         } 
        //save the option array 
         update_option("taxonomy_term_$t_id", $term_meta); 
        } 
    } 
    

    ある

    function getLatestProducts() { 
    $args = array(
        'post_status' => 'publish', 
        'post_type' => 'products', 
        'posts_per_page' => 12, 
        'meta_key'  => '_cus_sort_order', 
        'orderby'   => 'meta_value_num', 
        'order' => 'ASC' 
    ); 
    ?> 
    <?php 
           $args = array(
           'orderby' => 'name', 
           ); 
           $terms = get_terms('product_categories', $args); 
           foreach($terms as $term) {  
           $prod_meta = get_option("taxonomy_term_".$term->term_id); 
            ?> 
           <a href="<?php echo get_term_link($term->slug, 'product_categories') ?>"> 
           <?php 
            echo '<img src="'.$prod_meta['img'].'" title="" alt=""></a>'; ?> 
           </div> 
           <div class="product-name"> 
           <h5> 
           <a href="<?php echo get_term_link($term->slug, 'product_categories') ?>"> 
           <?php echo $term->name;?> 
           </a> 
           </h5> 
    

    カテゴリの名前と画像は表示されていますが、並べ替え順序は表示されません。

  • 答えて

    1

    あなたが修正されたコード

    function getLatestProducts() { 
        $args = array(
        'post_status' => 'publish', 
        'post_type' => 'products', 
        'posts_per_page' => 12, 
        'meta_key'  => '_cus_sort_order', 
        'orderby'   => 'meta_value_num, name', 
        'order' => 'ASC' 
    ); 
          $terms = get_terms('product_categories', $args); 
          foreach($terms as $term) {  
          $prod_meta = get_option("taxonomy_term_".$term->term_id); 
           ?> 
          <a href="<?php echo get_term_link($term->slug, 'product_categories') ?>"> 
          <?php 
           echo '<img src="'.$prod_meta['img'].'" title="" alt=""></a>'; ?> 
          </div> 
          <div class="product-name"> 
          <h5> 
          <a href="<?php echo get_term_link($term->slug, 'product_categories') ?>"> 
          <?php echo $term->name;?> 
          </a> 
          </h5> 
    

    呼び出さ カテゴリーのコード内の間違いを持っ​​ている私は、メインの引数の配列の後に呼び出される引数の配列を削除しました。以下の引数配列は上記の引数配列をオーバーライドします。

    削除引数配列

    $args = array(
        'orderby' => 'name', 
    ); 
    

    この情報がお役に立てば幸い!

    +0

    私はカテゴリを呼び出しています。 –

    +0

    働いているかどうかにかかわらず、私の答えを試しましたか? –

    +0

    これは動作していません。私は並べ替えの順序で1 2 3である番号を与えた –

    0

    Mehulの答えを拡張すると、保存機能にもいくつかの間違いがあります。

    以前に保存したカテゴリのソート順を確認しましたか?

    "taxonomy_term_$t_id"は、"taxonomy_term_" . $t_idである必要があります。それ以外の場合は、すべてをtaxonomy_term_$t_idというオプションで保存しますが、動的な用語IDでは保存しません。

    function save_product_categories_custom_fields($term_id) 
    { 
    if (isset($_POST['term_meta'])) { 
        $t_id = $term_id; 
        $term_meta = get_option("taxonomy_term_" . $t_id); 
        $cat_keys = array_keys($_POST['term_meta']); 
        foreach ($cat_keys as $key) { 
         if (isset($_POST['term_meta'][$key])) { 
          $term_meta[$key] = $_POST['term_meta'][$key]; 
         } 
        } 
    //save the option array 
        update_option("taxonomy_term_" . $t_id, $term_meta); 
    } 
    

    }

    +0

    に適用したいと伝える必要があります。その場合、私はそれを –

    +0

    で変更し、この「taxonomy_term_」を変更する必要があります。 $ t_idその後、私の前のカテゴリに影響があります –

    +0

    これを使用すると、新しいカテゴリは追加されません。 –

    関連する問題