當(dāng)前位置:首頁>WordPress建站>用戶交互>WordPress 根據(jù)用戶名/用戶角色/能力/是否登錄等隱藏部分文章內(nèi)容

WordPress 根據(jù)用戶名/用戶角色/能力/是否登錄等隱藏部分文章內(nèi)容

在寫文章的時候,也許你需要添加一些只對特殊用戶才顯示的內(nèi)容,今天就分享一下,通過簡碼來隱藏文章的部分內(nèi)容,只有符合條件的用戶(比如 指定的用戶、屬于某種用戶角色、擁有某種能力、是否登錄等)才能查看。

將下面的代碼添加到主題的 functions.php:

/**
 * WordPress 根據(jù)用戶名/用戶角色/能力/是否登錄等隱藏部分文章內(nèi)容
 * http://www.ydqwiac.cn/eyes-only-user-access-shortcode.html
 */
add_shortcode('eyesonly', 'sc_eyesonly');
function sc_eyesonly($atts, $content = null) {
	extract(shortcode_atts(array('username' => null, 'level' => null, 'logged' => null,'hide' => null,),$atts));
	if (!$hide || $hide === 'no' || $hide === 'false'){$pre = null;	$thecontent = do_shortcode($content);}
	if ($hide && $hide !== 'no' && $hide !== 'false'){$pre = do_shortcode($content); $thecontent = null;}
	$showcontent = $pre;
	$current_user = wp_get_current_user();
	$users = preg_split("/[\s,]+/",$username);
	$levels = preg_split("/[\s,]+/",$level);
	foreach($users as $name){if($username && $current_user->user_login === $name){$showcontent = $thecontent;}}
	foreach($levels as $value){if($level && current_user_can($value)){$showcontent = $thecontent;}}
	if($logged && is_user_logged_in() && $logged === 'in'){$showcontent = $thecontent;}
	if($logged && !is_user_logged_in() && $logged === 'out'){$showcontent = $thecontent;}
	return $showcontent;
}

以上代碼添加了一個有多個參數(shù)可用的簡碼:

[eyesonly][/eyesonly]

參數(shù)為:

logged="in|out"  //必填參數(shù),登錄/登出
level="anyrole, any_capability"  //必填參數(shù),可以填寫角色或能力
username="anyusername" // 必填參數(shù),直接填寫用戶名
hide="yes" // 選填參數(shù),是否隱藏

注:前三個必填參數(shù)至少使用其中一個,當(dāng)然可以兩個,或三個一起用。

范例:

[eyesonly level="administrator, customrole, moderate_comments"] 任何內(nèi)容 [/eyesonly]

內(nèi)容只有 ‘administrator’ 和自定義角色 ‘customrole’,以及擁有能力 ‘moderate_comments’ 的用戶可見

[eyesonly hide="yes" logged="out" level="subscriber customrole"] 任何內(nèi)容 [/eyesonly]

內(nèi)容對 未登錄用戶、以及 ‘subscriber’ 或 ‘customrole’ 這兩種角色的用戶都隱藏

[eyesonly username="joebob, billyjean" level="administrator"] 任何內(nèi)容 [/eyesonly]

內(nèi)容只有 administrator 這種角色的用戶、以及用戶名為 ‘joebob’ 和 ‘billyjean’ 的用戶(不一定是 administrator 角色)可見

[eyesonly logged="in"] 已登錄用戶可見 [/eyesonly]
[eyesonly logged="out"] 未登錄用戶可見 [/eyesonly]

在同一個位置顯示內(nèi)容,對已登錄和未登錄用戶顯示不同內(nèi)容

[eyesonly level="administrator"] 任何內(nèi)容 [/eyesonly]

只有 administrator 角色的用戶可見

[eyesonly hide="yes" level="administrator custom_capability"] 任何內(nèi)容 [/eyesonly]

內(nèi)容對 administrator 角色的用戶、以及擁有能力 ‘custom_capability’  的用戶隱藏

代碼出自:https://wordpress.org/plugins/eyes-only-user-access-shortcode/ 你可以訪問該頁面查看更多介紹。

聲明:本站所有文章,如無特殊說明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個人或組織,在未征得本站同意時,禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書籍等各類媒體平臺。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。

給TA打賞
共{{data.count}}人
人已打賞
歡迎關(guān)注WordPress大學(xué)公眾號 WPDAXUE
用戶交互

WordPress 禁止用戶使用密碼重置功能

2013-10-1 9:00:50

用戶交互

WordPress 添加文章難度等級 Article Difficulty Level

2013-10-8 10:30:48

7 條回復(fù) A文章作者 M管理員
  1. wufei20cn

    eyes only有漢化版嗎

  2. 隱藏后的提示呢? 有提示嗎? 可以自定義提示信息嗎?

  3. 求漢化版本

  4. 肖肖小3

    對部分內(nèi)容隱藏后,為什么沒有提示說對該內(nèi)容影響。登錄可見或其他?

  5. 諸葛小覺

    嘿,寫出直接安裝eyesonly即可實現(xiàn)這個操作更好了,給那些不太喜歡折騰的孩紙們~

?
個人中心
購物車
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索

甘泉县| 东安县| 财经| 新津县| 东光县| 唐海县| 蒲江县| 寿宁县| 平陆县| 射阳县| 邻水| 汉沽区| 浙江省| 诸城市| 菏泽市| 唐河县| 黔西县| 商南县| 镇坪县| 崇文区| 苍南县| 通化县| 镇赉县| 柳州市| 泾川县| 石狮市| 五寨县| 鄢陵县| 台安县| 德令哈市| 久治县| 恩平市| 琼中| 民权县| 黎平县| 乾安县| 蓬溪县| 大洼县| 叙永县| 思南县| 聂荣县|