admin管理员组文章数量:1335678
please help me,
i have title like this
'1-nen A-gumi no Monster Chapter 2'
'1-nen A-gumi no Monster Chapter 10'
'1-nen A-gumi no Monster Chapter 2'
'1-nen A-gumi no Monster Chapter 1'
'1-nen A-gumi no Monster Chapter 30'
'1-nen A-gumi no Monster Chapter 3'
i want to sort like this
'1-nen A-gumi no Monster Chapter 1'
'1-nen A-gumi no Monster Chapter 2'
'1-nen A-gumi no Monster Chapter 3'
'1-nen A-gumi no Monster Chapter 10'
'1-nen A-gumi no Monster Chapter 20'
'1-nen A-gumi no Monster Chapter 30'
but the result like this
'1-nen A-gumi no Monster Chapter 1'
'1-nen A-gumi no Monster Chapter 10'
'1-nen A-gumi no Monster Chapter 2'
'1-nen A-gumi no Monster Chapter 20'
'1-nen A-gumi no Monster Chapter 3'
'1-nen A-gumi no Monster Chapter 30'
this my function :
add_filter( 'posts_clauses', function ( $pieces, $query ) {
if ( $query->get( 'orderby' ) != 'title_number' ) return $pieces;
global $wpdb;
$field = $wpdb->posts . '.post_title';
$pieces[ 'fields' ] .= $wpdb->prepare(
', LEAST(' . implode( ',', array_fill( 0, 10, 'IFNULL(NULLIF(LOCATE(%s, ' . $field . '), 0), ~0)' ) )
. ') AS first_int',
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'
);
$pieces[ 'orderby' ] = $wpdb->prepare(
'IF(first_int = ~0, ' . $field . ', CONCAT('
. 'SUBSTR(' . $field . ', 1, first_int - 1),'
. 'LPAD(CAST(SUBSTR(' . $field . ', first_int) AS UNSIGNED), LENGTH(~0), %s),'
. 'SUBSTR(' . $field . ', first_int + LENGTH(CAST(SUBSTR(' . $field . ', first_int) AS UNSIGNED)))'
. ')) ' . $query->get( 'order' )
, 0
);
return $pieces;
}, 10, 2 );
but if the first character of title is letter the sort is normal.
please help thank you
本文标签: functionssort title descending with title with number
版权声明:本文标题:functions - sort title descending with title with number 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742374197a2462830.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论