ソートとページング
-
質問お願いします。
カスタムフィールドでソートする方法とページングがよくわかりません。
下記コードにarray_multisortを指定しカスタムフィールドの値でソートしたいと思っています。
しかしarray_multisortをどこに記述してもソートしてくれません。最後のwp_reset_query();のあとに
array_multisort($sample4, SORT_DESC, $sample2);
print ‘'; var_dump($sample4); print '
‘;
と記述するとちゃんとソートしてくれます。
ただ、ページングがうまくできていないのかarray_multisortなど使用すると
1ページ内でソートして全体ではソートしてくれません。例えば全部で25件の投稿があり1ページ10件表示と設定したとします。
1ページ10件表示するのですがarray_multisortを使用すると1ページ10件のみソートし
2ページ目は2ページ内でのみソートする感じです。
(var_dumpで試しました)具体例※数字はサイズと仮定してください)
値(5,8,7,1,9,11,54,65,43,39,4,16,19,3,42,87)
投稿取得
1ページ(5,8,7,1,9,11,54)
2ページ(65,43,39,4,16,19,3)
3ページ(42,87)
array_multisort($sample4, SORT_DESC, $sample2);とvar_dumpで試すと
1ページ(54,11,9,8,7,5,1)
2ページ(65,43,39,19,16,4,3)
3ページ(87,42)希望としては
1ページ(87,65,54,43,42,39,19)
2ページ(16,11,9,8,7,5,4)
3ページ(3,1)
と表示したいと思っています。——–コード
$catid=get_query_var(‘cat’);
$cat=get_category($catid);
$paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;
query_posts($query_string .’&paged=’.$paged);
if ( have_posts() ) : while ( have_posts() ) : the_post();$meta = get_post_custom_values(‘sample1’);
$sample2[] = array(
‘id’ => $post->ID,
‘title’ => $post->post_title,
‘all’ => unserialize($meta[0]));
foreach ($sample2 as $key=>$sample3){
$sample4[$key]=$sample3[‘all’][‘size’];
$sample5[$key]=$sample3[‘title’];
$sample6[$key]=$sample3[‘id’];
}
print $sample4[$key];
print $sample5[$key];
print $sample6[$key];endwhile;endif;
wp_reset_query();よろしくお願いします。
- トピック「ソートとページング」には新たに返信することはできません。