[カードランキング]という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; ?>
ここまでだと、
一覧は問題なく表示されますが、
ランキングの順番がカスタムフィールドの順番ではなく、
値のアルファベット順に勝手に並び替えをしてしまいます。
つまり、
- カードA
- カードB
- カードC
- カードD
- カードE
ではなく
- カードC
- カードB
- カードD
- カードA
- カードE
に表示したいのですが・・・うまくいきいません!!!
みなさんのお助けをお待ちしております!