Wordpress get_pages按post_title排序,包含非拉丁字符

时间:2015-10-06 09:54:13

标签: php wordpress

我使用以下代码输出按页面标题排序的Wordpress页面。

$args = array(
    'sort_order' => 'asc',
    'sort_column' => 'post_title',
    'hierarchical' => 1,
    'child_of' => $page,
    'parent' => -1,
    'post_type' => 'page',
    'post_status' => 'publish'
);

$pages = get_pages($args);

除了以非拉丁字符开头的页面外,它工作正常。 Å按照我们的瑞典字母顺序排列为A,它应该在最后,

3 个答案:

答案 0 :(得分:1)

你可以试试这个。

$args = array(
   'orderby' => 'post_title',
   'order' => 'asc',
   'hierarchical' => 1,
   'child_of' => $page,
   'parent' => -1,
   'post_type' => 'page',
   'post_status' => 'publish'
);

$pages = get_pages($args);

答案 1 :(得分:1)

似乎常规utf8_general_ci并未解决瑞典字母的问题。这个SQL命令解决了这些问题。

alter table wp_posts convert to character set utf8 collate utf8_swedish_ci;

答案 2 :(得分:0)

有一个名为Convert WP Database的精彩插件为UTF-8。我用它所有的时间。该插件将一个名为“UTF-8 DB Converter”的子菜单页面添加到插件菜单中。只需单击“开始转换”,插件就会自动执行所需的SQL查询,以更改所有现有WordPress表的字符集和排序规则。

每个网站只需要执行一次,问题就解决了。然后,您可以卸载该插件。

虽然这个插件对我来说总是顺利运行,但在尝试此过程之前,最好先备份WordPress数据库。