2015-10-06 18 views
1

我使用下面的代碼來輸出按頁面標題排序的Wordpress頁面。WordPress的get_pages按post_title排序,包含非拉丁字符

$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,它應該在最後跟隨我們的瑞典字母表。

+0

見答案[這裏](http://stackoverflow.com/questions/5529013/problem-sorting-swedish-characters-%C3%85-%C3%84-%C3%96-mysql) – SevStryker

+0

@SevStryker Mad Marvin的回答實際上解決了我的問題。如果你喜歡把它作爲正確的答案,我會接受它。 – Filip

+0

這是沒有必要的,我只是很高興幫助你 – SevStryker

回答

1

看起來,常規的utf8_general_ci不能解決與瑞典語字母這個問題。這個SQL命令解決了這個問題。

alter table wp_posts convert to character set utf8 collate utf8_swedish_ci; 
0

有一個奇妙的插件名爲轉換WP數據庫到UTF-8。我用它所有的時間。這個插件添加一個名爲「UTF-8 DB Converter」的子菜單頁面到插件菜單。只需點擊「開始轉換」,插件將自動執行所需的SQL查詢,以更改所有現有WordPress表格的字符集和排序規則。

你只需要在每個網站上做一次,問題就解決了。然後您可以卸載該插件。

雖然這個插件對我來說一直運行順暢,但在嘗試此過程之前,先備份您的WordPress數據庫是正確的做法。

+0

安裝了插件,我成功運行,但不幸的是它並沒有解決我的排序問題。 – Filip

+1

sry mate,我只是給你我解決這個問題的方法。 –

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); 
+0

不幸的是,這並沒有解決問題。 – Filip