這需求剛好一個客戶需要,雖從業務端那邊獲取的資訊是希望能改用數字網址,不過文章量已經有一定的曝光,現在改反而會造成流量流失,這邊根據我的理(猜)解(測),這個客戶希望能專注寫作,網址也最好不要特別刻意去思考,但同時也不要用預設的(中文標題就會直接掛在網址上,像我這部落格一樣)。

所以上網找了調整的辦法,結果... 居然沒看到有好的解答!!! 怎麼會這樣XD

這篇 Customize the auto generation of Post Slug in WordPress 裡面提到的方法其實是有問題的,怎都沒人回應勒~ 他的問題是會幫你改 Post Slug 但不是「建議」,是必須這樣改,這樣不喜歡這個建議也不行,太硬了拉 >///< 後來自己去翻 WordPress 核心程式來找辦法,在 get_sample_permalink 看到了這個 editable_slug 事件,就拿來改寫拉~

<?php
function mxp_post_slug_suggestion($post_name, $post) {
    if ($post->post_type === 'post' && empty($post_name)) {
        return 'post-' . time();
    }
    return $post_name;
}
add_filter('editable_slug', 'mxp_post_slug_suggestion', 11, 2);

不過有意思的事官方文件上這個方法使用有分版本,2.6.0 的方法沒有包含文章物件,所以要程式化判斷其實反而沒這麼容易,一直到 4.4.0 版才有補上文章物件使用。

所以意思就是上面我的這段程式碼片段的使用不適合 4.4.0 以下的版本哦~ 要特別注意!

使用方法就是把這段放在主題中 functions.php 裡就行了,當然,產生 Slug 的邏輯就自己改寫囉。

Facebook 外掛功能


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[//////////____30%_________]

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *