[WordPress] 開放訂閱者(Subscriber)角色閱讀私密文章或頁面

本篇文章更新時間:2020/11/08
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~


說這需求前,要介紹「Public Post Preview」這外掛。它可以協助 WordPress 5.0 後的網站,辦到不用登入下,特殊連結觀看文章的辦法。

對,意思是如果你 WordPress 網站的版本大於 5.0 需求也只是希望開放特殊人士的閱讀權限,那看到這邊就差不多了,裝上面的外掛吧XD

低於 v5.0 版本的 WordPress 網站也不是說沒招,只是稍微要補一點小功能,如下:

function mxp_add_theme_caps() {
    $roles = array('subscriber');
    foreach ($roles as $key => $role) {
        //取得授權角色
        if ($role = get_role($role)) {
            $role->add_cap( 'read_private_posts' );
            $role->add_cap( 'read_private_pages' );
        }
    }
}
add_action('admin_init', 'mxp_add_theme_caps');

function mxp_login_redirect( $redirect_to, $request_redirect_to, $user ) {
    //訂閱者沒有編輯文章的權限,登入後直接轉首頁
    if ( is_a( $user, 'WP_User' ) && $user->has_cap( 'edit_posts' ) === false ) {
        return get_bloginfo( 'siteurl' );
    }
    return $redirect_to; }

add_filter( 'login_redirect', 'mxp_login_redirect', 10, 3 );

在(子)主題下的 functions.php 裡新增上述的程式碼後開通「訂閱者」權限。

本文到這邊就算是滿足需求,如果要做到讓這個訂閱者帳號能自動取消閱讀權限的話還可以搭配這款「Temporary Login Without Password」外掛。

這款外掛可以產生一組暫時的訂閱者快速登入連結,將其提供給指定希望閱讀內容的人後再給私密文章或頁面,就能讓他觀看到私密內容又沒有網站安全危害囉!


Share:

作者: Chun

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

發佈留言

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