WordPress客製

WordPress 禁止顯示頁面 – 對管理員以外角色隱藏特定頁面

歡迎回到鵠學苑— WordPress 網頁設計超詳細攻略– ,當網站中具有多人共同編輯的情況下,為了防止其他具有編輯權限的工作同仁不小心修改到將已經建立好的網頁內容,除了安裝外掛來設定每一個身分更細的編輯項目外,也能以加入函數的方式將指定頁面隱藏起來。本篇文章分享的函數只需要將查詢到的頁面 ID 放入到指定位置,更新後就能夠生效,如果說只是單純想要隱藏頁面,又不想安裝多餘的外掛空耗主機資源,那麼就可以考慮使用此次教學說明的函數。

另外要做個提醒,加入任何自定義的函數前都請先確認 WordPress 版本(本次分享的函數在 WordPress 5.0 以上版本測試過)以及完成網站備份,以免網站發生錯誤無法還原。接下來跟著鵠學院的腳步,讓我們開始學習吧!

WordPress Codex hook
https://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts
WordPress Codex
https://codex.wordpress.org/Global_Variables

函數說明與隱藏頁面效果

第一步:查看頁面 id 最快的方式,就是在後台中將游標移至要查詢的頁面項目上,在左下角就會顯示此頁面的 id 號碼,如下圖所示。

第二步:下面的 function 首先以 add_action 定義 hook 為 pre_get_posts ,函數名稱為 exclude_this_page ,接者再以 $query 執行變量查詢。在 global 全局中給定變數為 $pagenow 、$current_user,再以 if 條件式給定當登入身份(user_roles)為網站管理員(administrator)時,返回正常查詢,也就是頁面均顯示,而當登入身份為編輯(editor)時,則執行 post__not_in,id=3 的頁面將不予顯示。

第三步:那進入佈景主題編輯器,選擇子主題後在 function.php 檔案結尾處加入函數,更新前記得修改 array(3) 中的數值為想要隱藏的頁面 id ,如果要隱藏多個頁面,使用逗點區隔即可,像是 array(3,4,5) 。

第四步:筆者新增一個權限為編輯的使用者。

第五步:在網站管理員權限的登入狀態下,ID 為 3 的頁面可以顯示。

第六步:以編輯權限登入後,ID 為 3 的頁面會自動隱藏。

結語:
今天的教學到這裡告一段落了,不要忘記在右側訂閱鵠學苑電子報,確保收到最新 WordPress 教學文章,如果有網頁設計相關需求,或者想了解最新網站知識,也可以到 鵠崙設計 做線上免費諮詢喔!我們下次的教學見~

WordPress相關文章:

網站資訊文章推薦

內容行銷到底要多久才能見效呢?撰寫內文時一定要遵循的潛規則!
SEO到底追不追的完?文章怎麼寫!
Google Search2020再進化,如何提升網頁品質?

Share
Published by
鵠學苑