如果帖子作者角色不是管理员,则按类名从帖子页面删除div

时间:2016-11-12 作者:Yama

我有一个网站,有两种类型的用户角色,管理员和作者。

我有一个潜水类名“site shop wrapper”,我只想将其显示给管理员添加的帖子,并将其隐藏给作者添加的所有其他帖子。

因此,基本上我需要一个函数来检查post-author角色,如果它不是管理员,则按类名删除div。

我是WP的新手,对WP了解不多,非常感谢对bee的任何帮助。

3 个回复
最合适的回答,由SO网友:Yama 整理而成

最后,我决定使用if author\\u函数。然而,我相信有更好的方法来做到这一点。add_action(\'wp_footer\', \'remove_buybutton_from_non_admin\'); function remove_buybutton_from_non_admin(){ if (author_can($post->ID, \'activate_plugins\')) { ?> <script> var appBanners = document.getElementsByClassName(\'shop-wrapper\'), i; for (i = 0; i < appBanners.length; i += 1) { appBanners[i].style.visibility="show"; } </script> <?php } else { ?> <script> var appBanners = document.getElementsByClassName(\'shop-wrapper\'), i; for (i = 0; i < appBanners.length; i += 1) { appBanners[i].style.visibility="hidden"; } </script> <?php } }

SO网友:Ranuka

基本上,您需要一个函数来检查post-author角色。您可以使用user_can() 作用

if(user_can(\'administrator\'))
{
     //Write your code if the admin
}
current_user_can() : https://codex.wordpress.org/Function_Reference/current_user_can

user_can() : https://codex.wordpress.org/Function_Reference/user_can

SO网友:cjbj

这并不难实现。首先,获取array of all admins:

$admins = get_users (array ( \'role\' => \'admin\'));
这将返回一个用户对象数组。您需要一个管理员ID数组,因此必须提取这些ID:

$admin_ids = array();
foreach ($admins as $admin) {$admin_ids[] = $admin->ID;}
接下来,查看当前用户是否在$admins 列出并相应采取行动

$author_id = get_the_author_meta( \'ID\' );
if (in_array ($author_id, $admin_ids))
  ...do admin stuff...
else
  ...do non admin stuff...;
注意:我没有测试此代码,可能需要进行一些调试。