WordPress实现角色权限等级、是否登入等隐藏部分文章内容(纯代码不外挂)

文章目录

  1. 首先,我们完成wordpress后,我们希望一些文章给
  2. 不同权限的会员阅读
  3. 登入后才能乐读
  4. 自创角色才可以阅读
  5. 又不想使用外挂,那我们可以使用以下代码来完成
  6. 第一步,开启主题 functions.php,将下面代码贴入topics_line
  7. 第二步,以上代码添加了一个有多个参数可用的简码:
  8.  [eyesonly][/eyesonly]
  9. 参数为:
  10. topics_linelogged="in|out" //必填参数,登入/登出
  11. level="anyrole, any_capability" //必填参数,可以填写角色或能力
  12. username="anyusername" // 必填参数,直接填写用户名
  13. hide="yes" // 选填参数,是否隐藏topics_line
  14. 注:前三个必填参数至少使用其中一个,当然可以两个,或三个一起用。
  15. 范例一:如果你想让内容只有administrator’ 和自订角色 ‘customrole’,以及拥有能力 ‘moderate_comments’ 的用户可见
  16. 你调用的代码则是
  17. topics_line[cc lang="php"] [eyesonly level="administrator, customrole, moderate_comments"] 任何内容 [/eyesonly] [/cc]topics_line

  18. 范例二:内容对未登入者隐藏、以及 ‘subscriber’ 或 ‘customrole’ 这两种角色的用户都隐藏
  19. 调用的代码则是topics_line[cc lang="php"] [eyesonly hide="yes" logged="out" level="subscriber customrole"] 任何内容 [/eyesonly] [/cc]topics_line

  20. 范例三:内容只有 administrator 这种角色的用户、以及用户名为 ‘joebob’ 和 ‘billyjean’ 的用户(不一定是 administrator 角色)可见
  21. 调用的代码则是
  22. topics_line[cc lang="php"] [eyesonly username="joebob, billyjean" level="administrator"] 任何内容 [/eyesonly] [/cc]topics_line

  23. 范例四:在同一个位置显示内容,对已登录和未登录使用者显示不同内容
  24. 调用的代码则是
  25. topics_line[cc lang="php"] [eyesonly logged="in"] 已登录用户可见 [/eyesonly]2. [eyesonly logged="out"] 未登录用户可见 [/eyesonly] [/cc]topics_line

  26. 范例五:只有 administrator 角色的用户可见
  27. 调用的代码则是
  28. topics_line[cc lang="php"] [eyesonly level="administrator"] 任何内容 [/eyesonly] [/cc]topics_line
  29. 范例六:内容对 administrator 角色的使用者、以及拥有能力 ‘custom_capability’  的用户隐藏
  30. 调用的代码则是
  31. topics_line[cc lang="php"] [eyesonly hide="yes" level="administrator custom_capability"] 任何内容 [/eyesonly] [/cc]topics_line
  32. 现在,大家有看过六种不同调阅代码的范例,大体而言应该会使用了吧!
  33. 若要更详细,可以参考https://wordpress.org/plugins/eyes-only-user-access-shortcode/
首先,我们完成wordpress后,我们希望一些文章给
不同权限的会员阅读
登入后才能乐读
自创角色才可以阅读
又不想使用外挂,那我们可以使用以下代码来完成
第一步,开启主题 functions.php,将下面代码贴入topics_line

[cc lang="php"] //WordPress实现角色权限等级、是否登入等隐藏部分文章内容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; } [/cc]

第二步,以上代码添加了一个有多个参数可用的简码:
 [eyesonly][/eyesonly]
参数为:

[cc lang="php"] // ogged="in|out" //必要数值,登入/登出// level="anyrole, any_capability" //必要数值,可以填写角色或能力,或自创角色// username="anyusername" // 必填参数,直接填写用户名// hide="yes" // 选填数值,是否隐藏[/cc]

topics_linelogged="in|out" //必填参数,登入/登出
level="anyrole, any_capability" //必填参数,可以填写角色或能力
username="anyusername" // 必填参数,直接填写用户名
hide="yes" // 选填参数,是否隐藏topics_line
注:前三个必填参数至少使用其中一个,当然可以两个,或三个一起用。
范例一:如果你想让内容只有administrator’ 和自订角色 ‘customrole’,以及拥有能力 ‘moderate_comments’ 的用户可见
你调用的代码则是
topics_line[cc lang="php"] [eyesonly level="administrator, customrole, moderate_comments"] 任何内容 [/eyesonly] [/cc]topics_line


范例二:内容对未登入者隐藏、以及 ‘subscriber’ 或 ‘customrole’ 这两种角色的用户都隐藏
调用的代码则是topics_line[cc lang="php"] [eyesonly hide="yes" logged="out" level="subscriber customrole"] 任何内容 [/eyesonly] [/cc]topics_line


范例三:内容只有 administrator 这种角色的用户、以及用户名为 ‘joebob’ 和 ‘billyjean’ 的用户(不一定是 administrator 角色)可见
调用的代码则是
topics_line[cc lang="php"] [eyesonly username="joebob, billyjean" level="administrator"] 任何内容 [/eyesonly] [/cc]topics_line


范例四:在同一个位置显示内容,对已登录和未登录使用者显示不同内容
调用的代码则是
topics_line[cc lang="php"] [eyesonly logged="in"] 已登录用户可见 [/eyesonly]2. [eyesonly logged="out"] 未登录用户可见 [/eyesonly] [/cc]topics_line


范例五:只有 administrator 角色的用户可见
调用的代码则是
topics_line[cc lang="php"] [eyesonly level="administrator"] 任何内容 [/eyesonly] [/cc]topics_line

范例六:内容对 administrator 角色的使用者、以及拥有能力 ‘custom_capability’  的用户隐藏
调用的代码则是
topics_line[cc lang="php"] [eyesonly hide="yes" level="administrator custom_capability"] 任何内容 [/eyesonly] [/cc]topics_line

现在,大家有看过六种不同调阅代码的范例,大体而言应该会使用了吧!
若要更详细,可以参考https://wordpress.org/plugins/eyes-only-user-access-shortcode/

评论 (0)

此处尚未发表评论

留言

  1. 以游客身份发表评论。注册登入到您的帐户。
附件 (0/ 3)
分享您的位置