フォーラム

カスタムフィールドの配列順番を入力した通りに出力する方法 (1 件の投稿)

  1. restard
    メンバー
    6 months前の投稿 #

    [カードランキング]というtextfieldカスタムフィールドを作り、複数入力ができるようにして、
    編集者がランキング順に該当するカード名を入力できるようにしてあります。
    そして、テンプレートでは、そのカスタムフィールドのカード名と一致する投稿記事を照らし合わしてランキング一覧を出力する形です。

    詳しくは、

    投稿記事のカスタムフィールド
    「ランキング」カテゴリーの投稿記事「総合ランキング」
    カスタムフィールドkey:カードランキング
    カスタムフィールドvalues:カードC,カードB,カードD,カードA,カードE

    single.phpテンプレートのソース

    <?php
    	$rankingNo = 1;
    	$rankings = get_post_custom_values('カードランキング',$post->ID);
    	if($rankings):
    	foreach( $rankings as $ranking ):
    ?>
    	<?php
    		$posts = get_posts('post_type=post&numberposts=-1');
    		foreach( $posts as $post ) : setup_postdata($post); ?>
    			<?php if($ranking == $post->post_title): ?>
    				<p>ランキング<?php echo $rankingNo; ?>:<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
    			<?php endif; ?>
    	<?php endforeach; ?>
    <?php $rankingNo++; ?>
    <?php endforeach; ?>
    <?php endif; ?>

    ここまでだと、
    一覧は問題なく表示されますが、
    ランキングの順番がカスタムフィールドの順番ではなく、
    値のアルファベット順に勝手に並び替えをしてしまいます。

    つまり、

    1. カードA
    2. カードB
    3. カードC
    4. カードD
    5. カードE

    ではなく

    1. カードC
    2. カードB
    3. カードD
    4. カードA
    5. カードE

    に表示したいのですが・・・うまくいきいません!!!

    みなさんのお助けをお待ちしております!

返信

ログイン しなければ投稿できません。

About this Topic