2017-06-29 8 views
1

アルファベット順に投稿を並べ替えようとしていますが、期待していた結果が得られません。これは私が取得したいのですが何であるWordpress - 数字とアルファベット順のアルファベットを含む投稿を並べ替えます。

NOZ - 1 apple 
    NOZ - 10 orange 
    NOZ - 11 banana 
    NOZ - 2 tree 
    NOZ - 3 grass 

:これは私が得るものです

NOZ - 1 apple 
    NOZ - 2 tree 
    NOZ - 3 grass 
    NOZ - 10 orange 
    NOZ - 11 banana 

これは私のPHPコードです:

<?php $loop = new WP_Query(array('post_type' => 'myPosts', 'orderby' => 'title', 'order' => 'ASC', 'posts_per_page' => -1) ); ?> 

おかげであなたの助けのためにたくさん。

答えて

2

orderbyフィールドにMySQL関数を追加できます。たとえば、次のようになります。

'orderby' => 'CAST(SUBSTRING(title, 7) as unsigned)' 

サブ文字列関数は、7文字目以降のすべての文字を抽出します。

キャスト関数は、抽出された文字を符号なし整数に変換します。キャスト機能は、左から右へ機能します。数値でないすべての文字を破棄します。同様の質問がここで答えられました:SQL order string as number

+0

偉大な、ありがとう! –

関連する問題