サポート » プラグイン » カスタムフィールドテンプレートのfieldsetの出力のソート

  • Custom Field Templateでmultipleを設定したfieldsetにおいて、
    無事に出力までは出来たのですがソートの変更の仕方が分かりません。

    現在、テーマ内のcontent-single.phpに

    <?php
    $cf  = get_post_custom( $post->ID );
    $value1	= $cf['value1'];
    $value2	= $cf['value2'];
    $field0 = $cf['field0'];
    $length = $field0[0];
    
    //ソートのための配列生成
    $values = array();
    for( $j = 0; $j < $length; $j ++ ){
    	$v = $value1[$j] . "|" . $value2[$j] ;
    	array_push( $values, $v );
    }
    //$value1でソート
    sort( $values );
    
    //表示
    for( $i = 0; $i < $length; $i ++ ){
    	$value = $values[$i];
    	$v = explode( "|",  $value );
    		echo '<dl>';
    		echo '<dt>' . $v[0] . '</dt>';
    		echo '<dd>' . $v[1] . '</dd>';
    		echo '</dl>';
    }
    ?>

    と入れて出力しているのですが、この

    //ソートのための配列生成
    $values = array();
    for( $j = 0; $j < $length; $j ++ ){
    	$v = $value1[$j] . "|" . $value2[$j] ;
    	array_push( $values, $v );
    }
    //$value1でソート
    sort( $values );

    で表示順序がfieldsetを追加した新しい順に表示されるのを古い順に変更したいのですが、シロウトなので変更の仕方が分かりません。

    どなたかご教授の程、宜しくお願い申し上げます。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • ソートしなければ、今とは逆に表示されます。

    <?php
    $cf  = get_post_custom( $post->ID );
    $value1 = $cf['value1'];
    $value2 = $cf['value2'];
    $field0 = $cf['field0'];
    $length = $field0[0];
    
    for( $i = 0; $i < $length; $i++ ){
        echo '<dl>';
        echo '<dt>' . $value1[$i] . '</dt>';
        echo '<dd>' . $value2[$i] . '</dd>';
        echo '</dl>';
    }
    ?>

    ただし、$cf = get_post_custom( $post->ID ); でカスタムフィールドを取得したとき、古い順に取得されるという保証はないように思います。

    トピック投稿者 it-plus

    (@it-plus)

    ご投稿ありがとうございます。

    ご指示いただいたとおりにソートするのをやめてみたのですが、
    表示順序が変わりません。

    1つのfieldset内でmultipleで追加した古い順に
    表示させたいのですが、おそらく$value1順に表示されてしまうようです。

    ソートをmultipleで追加した古い順に操作する事は出来ませんでしょうか。
    宜しくお願い申し上げます。

    すいません、頭の中で sort と array_reverse が交錯していました。

    しかし、$cf = get_post_custom( $post->ID ); で順序の保証はないので、このコードでは「古い順」というのは無理だと思います。カスタムフィールドテンプレートのマニュアルには、何か別の方法が書いてあるかもしれません。

    トピック投稿者 it-plus

    (@it-plus)

    ご返信ありがとうございます。

    他にも調べましたところ、
    http://ja.forums.wordpress.org/topic/6941?replies=9
    上記ページの方法で問題なく出来ました。

    ありがとうございました。

    なるほど、

    blank = true

    ですか。blank という名前からは想像しがたいオプションですね。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「カスタムフィールドテンプレートのfieldsetの出力のソート」には新たに返信することはできません。