サポート » 使い方全般 » 検索結果をカスタムフィールド値でソートした後、50音順でソートしたい

  • 解決済 fujishoweb

    (@fujishoweb)


    現在、データベースのようなサイトを制作しているのですが検索結果でハマったため皆さんのお力を借りれればと思い、藁をもつかむ思いでやってきました。

    現在、絞り込み検索にて投稿した記事を閲覧することができるような構成をしているのですが、絞り込みの値を何もしてせずにそのまま一覧で表示した際にカスタムフィールド値で優先順位を付けてソートし、そのソートした結果を50音順で並べたいという要望があり思考錯誤しておりました。今の説明ではわからないと思うので下記のようなイメージです。

    ———————–Aグループ(カスタムフィールド値でソート)————————–
    あああ(50音順ソート)
    ううう(50音順ソート)
    おおお(50音順ソート)
    ————————————————————————————————-

    ———————–Bグループ(カスタムフィールド値でソート)————————–
    いいい(50音順ソート)
    えええ(50音順ソート)
    かかか(50音順ソート)
    ————————————————————————————————-

    その上で下記コードでカスタムフィールドでソートするところまではできているのですが、50音順が降順になっており、昇順にできないのです。【あ→ん】順ではなく、【ん→あ】順になってしまいます。どうしたら【あ→ん】順にできますか?

    index.php

    <?php
    			$s = $_GET['s'];
    			$catnum = $_GET['catnum'];
    			$shinryo = $_GET['shinryo'];
    
    			if($catnum){
    			    $taxquerysp[] = array(
    			            'taxonomy'=>'category',
    			            'terms'=> $catnum,
    			            'include_children'=>false,
    			            'field'=>'term_id',
    			            'operator'=>'AND'
    			            );
    			}
    
    			$taxquerysp['relation'] = 'AND';
    
    			if($shinryo){
    			    $metaquerysp[] = array(
    			            'key'=>'shinryo',
    			            'value'=> $shinryo,
    			            'compare'=>'=',
    			            );
    			}
    
    			$metaquerysp['relation'] = 'AND';
    
    			?>
    			<?php
    
    			query_posts( array(
    			    'tax_query' => $taxquerysp,
    			    'meta_query' => $metaquerysp,
    			    's' => $s,
    			    'posts_per_page' => 6,
    			    'paged' => $paged,
    			    'orderby' => 'meta_value',
    			    'meta_key' => 'sort',
    			    'order' => ASC,
    			    )
    			);
    
    			?>

    どなたかわかる方いらっしゃったら、ご教授願いたいです。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック投稿者 fujishoweb

    (@fujishoweb)

    50音順でソートはできたのですが、今度はカスタムフィールドのソートが崩れてしまいます。
    カスタムフィールドでAグループとBグループにソートしたのですが、Aグループの途中にBグループが来てしまいます。

    ———————–Aグループ(カスタムフィールド値でソート)————————–
    あああ(記事:50音順ソート)
    ううう(記事:50音順ソート)
    おおお(記事:50音順ソート)
    ————————————————————————————————-

    ———————–Bグループ(カスタムフィールド値でソート)————————–
    いいい(記事:50音順ソート)
    えええ(記事:50音順ソート)
    かかか(記事:50音順ソート)
    ————————————————————————————————-

    ———————–Aグループ(カスタムフィールド値でソート)————————–
    ききき(記事:50音順ソート)
    くくく(記事:50音順ソート)
    けけけ(記事:50音順ソート)
    ————————————————————————————————-

    ソースは下記の通りです。
    すごく困ってます。
    なぜでしょうか?

    <?php
    	$s = $_GET['s'];
    	$catnum = $_GET['catnum'];
    	$shinryo = $_GET['shinryo'];
    
    		if($catnum){
    			$taxquerysp[] = array(
    			            'taxonomy'=>'category',
    			            'terms'=> $catnum,
    			            'include_children'=>false,
    			            'field'=>'term_id',
    			            'operator'=>'AND'
    			            );
    			}
    
    			$taxquerysp['relation'] = 'AND';
    
    			if($shinryo){
    			    $metaquerysp[] = array(
    			            'key'=>'shinryo',
    			            'value'=> $shinryo,
    			            'compare'=>'=',
    			            );
    			}
    			$metaquerysp['relation'] = 'AND';
    
    ?>
    <?php
    
    		query_posts( array(
    		    'tax_query' => $taxquerysp,
    		    'meta_query' => $metaquerysp,
    		    's' => $s,
    		    'posts_per_page' => '6',
    		    'paged' => $paged,
    		    'orderby' => 'meta_value&title("ASC")',
    		    'meta_key' => 'sort',
    		    'order' => 'ASC'
    
    		   )
    		);
    
    ?>
1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「検索結果をカスタムフィールド値でソートした後、50音順でソートしたい」には新たに返信することはできません。