サポート » 使い方全般 » カテゴリをカスタムフィールドで並び替えしたい

  • 解決済 curono

    (@curono)


    現在、カテゴリページにカスタムフィールドを追加しそこに時間を入力しています(key=>time、value=>17:35)みたいな感じです。

    そして、これをカスタムフィールドに追加した値(time)時間順で表示したいのですがどうすればいいのでしょうか?

    ・カテゴリ名:あいうえお 13:00
    ・カテゴリ名:かきくけこ 12:00

    これを

    ・カテゴリ名:かきくけこ 12:00
    ・カテゴリ名:あいうえお 13:00

    として出力したいのです。つまり、通常の記事のカスタムフィールドの並び替えをカテゴリで行いたいのです

    以上よろしくお願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • カテゴリページにカスタムフィールドを追加し

    どうやって追加したのかのコードを提示すると回答が付きやすいです◎

    トピック投稿者 curono

    (@curono)

    こちらのサイトを参考に追加しました。
    http://www.webopixel.net/wordpress/436.html

    ▼実際のコード
    カテゴリに追加したコード(functions.php):

    add_action ( 'edit_category_form_fields', 'extra_category_fields');
    function extra_category_fields( $tag ) {
        $t_id = $tag->term_id;
        $cat_meta = get_option( "cat_$t_id");
    ?>
    <tr class="form-field">
    	<th><label for="time">時間</label></th>
    	<td>
    		<input id="time" type="text" size="36" name="Cat_meta[time]" value="<?php if(isset ( $cat_meta['time'])) echo esc_html($cat_meta['time']) ?>" />
    </tr>
    <?php
    }

    テンプレート側で表示したコード(index.php):

    <ul class="clearfix">
    <?php
    $tag_all = get_terms("category", "fields=all");
    foreach($tag_all as $value):
    $cat_data = get_option('cat_'.intval($value->term_id));
    ?>
    <li>
    <?php echo esc_html($cat_data['time']) ?>
    </li>
    <?php endforeach; ?>
    </ul>

    上記のコードによりカテゴリ順では時間が表示されます。これを、カテゴリ順でなく時間順(カスタムフィールド順)にしたいのです。

    通常の記事のカスタムフィールドみたいに

    query_posts(‘meta_key=meta_key&orderby=meta_value’);

    みたいなものが使えればいいのですが。。。。

    こんにちは、

    現状のコードは、term_idを使って、オプションテーブルにデータを入れているだけなので、
    ソートしたりするなら、もう人手間かけないといけないんじゃないかなと思います

    サンプルコードを例にすると

    $tag_all = get_terms("category", "fields=all");
    foreach($tag_all as $value):
    $cat_data = get_option('cat_'.intval($value->term_id));
     $key = esc_html($cat_data['time'])
     $val = $value->slug;
    
     $data[$key] = $val;
    
    endforeach;

    $dataをソートして、並べなおして、どっかに置いて置く、という手順があるといいんじゃないかなと思います。

    トピック投稿者 curono

    (@curono)

    なるほど。ちょっとnobitaさんの方法でやってみたいと思います。どうもありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「カテゴリをカスタムフィールドで並び替えしたい」には新たに返信することはできません。