最近在用上一篇介紹的那個Broadcast主題,非常好用,但是他的主菜單是基于文章分類的,而不是wordpress標準的菜單方式,所以排序就成了問題,網上有人說WordPress分類排序的原理是默認按照尾字母的英文字母去的,中文漢字是依照第一個漢字的筆劃次序來的,分歧范例的排序則順次是中文漢字--數字--26個英文字母。但我添加后的默認顯示順序是:聯系我們、日本旅游、文化交流、合作伙伴、協會介紹。我也沒看出來怎么是按中文筆畫排序的。
關于分類排序很多人都提到各種各樣的排序插件,比如my categories order之類的,但我搜了一下大多年久失修,很久沒更新了,應該已經不能適應新版wp了。
第二種方法是修改wp-includes文件夾下:category-template.php頁面中wp_list_categories函數里的這一句:'orderby' => 'id', 'order' => 'ASC',把name改成id,這樣就可以按照id值排序了,起碼找到了一個靠譜的規則。關于如何知道分類的id,很簡單,分類編輯列表,把鼠標放在分類名稱上,瀏覽器下方就會顯示“.../?cat=2”這樣的信息,結尾數字就是對應分類的id了,系統默認分配id的規則是自增的。對于Broadcast,菜單位置顯示分類時id最值小的排在菜單最右段,我們習慣都是按左邊排第一個,這樣先添加的倒跑最后去了。不過沒關系,我們可以先添加后面的,再添加前面的,順序反過來就好。其實還有一個辦法就是添加的時候名稱只寫1、2、3這樣,然后再按需要的順序改成想要的。
上述方法有一個明顯缺點,就是以后要調整時會很麻煩,比如要調整個順序,或者想在中間增加一個分類時就不好處理了。沒關系,我們還有一個辦法“修改數據庫值”。
注:該方法僅在我本地簡單測試,原理應該無誤,但若發生問題本人概不負責……
wp的數據庫里wp_terms表存儲了文章分類和菜單,term_id就是他們的id值,我一開始就直接把這個值修改了想看順序,結果一刷新前臺發現分類沒有了,后臺看了一下也沒有了,后來發現還有wp_term_taxonomy這個表,這個表里的term_id就是wp_terms的term_id,是外鍵,wp_terms和wp_term_taxonomy表term_id要同時修改就好。我一開始還擔心文章是不是也引用了這個id,那樣添加了很多文章后就麻煩了,后來發現wp的dba可能考慮過這個問題,它是用wp_term_relationships表來存儲文章和菜單或分類對應關系的,而且用的是wp_term_taxonomy表的term_taxonomy_id,而這個值我們是不用修改的,所以就沒問題啦。從此以后就可以隨心所欲修改分類顯示順序啦,哈哈哈哈哈。
|
新聞熱點
疑難解答
圖片精選