WordPress隨機文章功能 – 用同一連結跳轉到隨機文章

在WordPress中,若想為新來的讀者帶來一點興趣,可以考慮加入一個隨機文章功能,雖然WordPress沒有內置這功能,但仍可透過簡單的copy and paste,將代碼貼到適當位置即可做到,不用額外安裝外掛、為伺服器帶來負擔。

隨機文章功能簡介

故名思義,用戶在輸入一條連結後,網站會自動隨機跳轉到一篇文章中,而每次的文章都可能不一樣。

例如輸入https://www.blowhk.com/random,會跳轉到https://www.blowhk.com/drawio/,再輸入https://www.blowhk.com/random,會跳轉到https://www.blowhk.com/free-web-hosting-2018/

效果示範:https://www.blowhk.com/random

事前凖備

在添加隨機跳轉功能前,為免功能在更新主題時消失,需要先添加子主題,詳細教學在此:

https://www.blowhk.com/wordpress-child-theme/

添加功能

  1. 前往外觀-佈景主題編輯器
  2. 在界面右上角選擇你目前正在用的子主題
  3. 編輯functions.php,貼上以下代碼,可按需要顯示部分分類(即將介紹)
    add_action('init','random_add_rewrite');
    function random_add_rewrite() {
        global $wp;
        $wp->add_query_var('random');
        add_rewrite_rule('random/?$', 'index.php?random=1', 'top');
    }
    
    add_action('template_redirect','random_template');
    function random_template() {
        if (get_query_var('random') == 1) {
            $posts = get_posts('post_type=post&orderby=rand&numberposts=1');
            foreach($posts as $post) {
                $link = get_permalink($post);
            }
            wp_redirect($link,307);
            exit;
        }
    }

  4. 儲存後,即可前往<你的WordPress網址>/random,網站便會跳轉到隨機一篇文章中。

調整參數

此功能有少量參數可以調整,分別是跳轉的網址和分類。

若要修改網址,可修改以下熒光代碼,例:將random轉做r,便可轉入<你的WordPress網址>/r來跳轉。

若要修改要顯示的分類,可以在$posts = get_posts('post_type=post&orderby=rand&numberposts=1')之間添加&category=1,2,3,-4

按自已需要取締當中的1,2,3,-4,1,2,3為要顯示的分類ID,4為1,2,3的子分類,4前面的-代表不顯示該分類,所以此例子是顯示ID1,2,3的分類,但不顯示ID4子分類。

想知道分類的ID,可到文章-分類,把鼠標放在分類上,無需點擊,在瀏覽器左下角便會看到分類ID。

參考資料

StackOverflow:https://stackoverflow.com/questions/8672401/get-random-post-in-wordpress

WordPress Developer Handbook:https://developer.wordpress.org/reference/functions/get_posts/

voidCoders:https://voidcoders.com/find-category-id-wordpress/

Author avatar
OpenserTk
https://opensertk.blowhk.com
現實中我是一個很被動的人,不過在網上就是一個樂意跟網友分享資訊的人。

Post a comment

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

本站採用Cookies來提升你的使用體驗。