サポート » 使い方全般 » 投稿タイトル順(五十音順)

  • タイトル順で並び替えると「ゔ」は、「ん」の後になります。
    ワードプレスの仕様なんだと思うのですが、「ゔ」の位置を「う」と同じ位置に表示することは可能でしょうか?

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • CG

    (@du-bist-der-lenz)

    清音が順になっていて、その後に濁音、半濁音がその他扱いになっているためでしょう。清音と濁音、半濁音をグループ化したいわけですが、その際のルールはどうしますか。

    トピック投稿者 bigbang823

    (@bigbang823)

    CGさん、返信ありがとうございます。

    参照画像の様に「ゔ」だけがその他扱いなのかと思います。

    「ば」や「ぱ」であれは「は」の次に表示されるので、「ゔ」も同じ表示順にしたいです。

    CG

    (@du-bist-der-lenz)

    「ぶ」ではどうでしょう

    トピック投稿者 bigbang823

    (@bigbang823)

    参照画像2

    「ぶ」は「は行」に収まりますね。

    CG

    (@du-bist-der-lenz)

    外務省での正式表記は、「ヴェネツィア」ではなくて「ベネチア」。いやらしいところですね、「ヴュー」か「ビュー」か、「ヴ」の課題は多岐にあります。一般認識はどうか、どちらで文字がタイプされるケースが大きいか。それを、自身のサイトでのルールではどう収めるのか。しっかり検討が必要です。

    こんにちは

    データベース(MySQL)の文字コードによるのかもしれません。
    https://qiita.com/tfunato/items/e48ad0a37b8244a788f6

    posts_orderby フックなどで照合順序(COLLATE)を指定してみてはどうでしょうか?
    https://dev.mysql.com/doc/refman/5.6/ja/charset-collate.html

    例:

    function my_posts_orderby( $orderby, $query ) {
    	global $wpdb;
    	if ( is_admin() && $query->query['post_type'] == 'post' ) {
    		if ( $query->query_vars['orderby'] == 'title' ) {
    			$order = $query->query_vars['order'];
    			$orderby = "{$wpdb->posts}.post_title COLLATE utf8mb4_unicode_ci {$order}";
    		}
    	}
    	return $orderby;
    }
    add_filter( 'posts_orderby','my_posts_orderby', 10, 2 );

    なお「ゔ」(「う」に濁点)は環境依存文字のようなので、上記の方法では対応できないかもしれません。その場合は、下記のように文字を置換するとできるかもしれません。

    $orderby = "{$wpdb->posts}.post_title COLLATE utf8mb4_unicode_ci {$order}";

    $orderby = "replace({$wpdb->posts}.post_title, 'ゔ', 'ぇ') {$order}";

    こんにちは

    Unicode では「ゔ」は「ん」の後なのでそのような並びになります。

    https://ja.m.wikipedia.org/wiki/Unicode%E4%B8%80%E8%A6%A7_3000-3FFF

    置き換えるなら、分解して「う゛」にした方が自然な並びになる気がします。

    気になったので試してみました。
    データベースのテーブルの照合順序は utf8mb4_unicode_ci です。結果は、下記のような並びになりました。

    あ→う→ゔ→お→は→ば

    トピック投稿者 bigbang823

    (@bigbang823)

    ishitakaさん、ありがとうございます。

    ワードプレスの問題ではなく、サーバー上のphpMyAdminの照合順序が影響しているんですね。
    phpMyAdminで照合順序をutf8mb4_unicode_ciに変更したのですが、タイトル順は変わらずでした。

    問題が照合順序っぽいので、この質問はフォーラム違いですね?

    phpMyAdminで照合順序をutf8mb4_unicode_ciに変更したのですが、タイトル順は変わらずでした。

    MySQL のバージョン、「ゔ」のコードの違いによるのかもしれませんがちょっと分かりません。
    置換する方法はどうでしょうか?

    問題が照合順序っぽいので、この質問はフォーラム違いですね?

    WordPress の管理画面の問題なのでいいかと思います。ただし、phpMyAdmin や utf8mb4_unicode_ci の詳細に関しては、ここより適した場所があると思います。

    テーブルの照合順序を変更しても、カラムの変更順序が utf8mb4_general_ci などのままだからじゃないでしょうか。

    参照順序を変えるとソート順序も変わるんですね・・・当たり前ですけど、知りませんでした。
    utf8mb4_general_ci に変更すると、ひらがなとカタカナの区別をしなくなりますので、ご注意ください。

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • トピック「投稿タイトル順(五十音順)」には新たに返信することはできません。