WpQuery中的ORDERBY不区分大小写

时间:2018-11-19 作者:KingRichard

我正在尝试按字母顺序对自定义帖子进行排序,我刚刚意识到,大写字母的排序要先于小写字母。有两家餐厅以“Cal”和“CAT”开头,并按字母顺序将“CAT”作为第一个返回。

以下是我的$参数:

$args = array(
    \'numberposts\' => -1,
    \'post_type\' => \'chef\',
    \'meta_key\' => \'restaurant\',
    \'orderby\' => \'meta_value\',
    \'order\' => \'ASC\'
);
我也尝试过将“orderby”改为“LOWER(restaurant)”,但没有成功。

2 个回复
SO网友:rudtek

看起来您可能未正确设置orderby。。。您没有将metakey和orderby设置为相同的。

尝试更改

\'orderby\' => \'restaurant\',

\'orderby\' => \'meta_value\',
此链接可能会有所帮助https://codex.wordpress.org/Class_Reference/WP_Query#Order_.26_Orderby_Parameters

SO网友:Otto

如上所述orderby 参数应设置为meta_value, 不restaurant.

使用phpMyAdmin或其他工具查看数据库。对于任何更新的WordPress安装,您的表应该具有utf8mb4_unicode_ci. 这意味着该表以UTF-8 4字节unicode字符集存储其数据。结尾的“ci”表示“不区分大小写”。

如果排序规则不正确,则可能需要转换数据。这并不像听起来总是那么容易,所以请确保首先获得数据库的高质量备份。

结束

相关推荐

根据下拉菜单修改MySQL查询

我希望能够根据下拉菜单中的选择修改MySQL查询。这将更新页面上显示的后续表格。我当前的代码如下(注意我正在使用PHP code snippets (Insert PHP) 插件)但是,这没有预期的结果,因为没有生成表。如有任何帮助,我们将不胜感激。<form method=\"POST\"> <select name=\"post_ID\"> <option value=\"21\">21</option> <