WordPress查询文章作者的文章数及WordPress用户角色/权限(wordpress教程菜鸟教程)(php教程 菜鸟教程)

2022-09-18 0 365

一、查询Wordpress某篇文章作者的全部文章或部分最新文章

1.获取当前文章作者的ID

  1. get_post($id)->post_author  

这才是获取Wordpress当前文章作者ID的正确方式,网上到处乱传的那篇名叫“WordPress 通过文章ID获取文章标题、内容等信息”的文章里的说法是错误的,虽然是错误的,但是却被广泛的Ctrl+C然后Ctrl+V,以讹传讹,不可思议啊。

另外get_post($id)->可以获取与文章有关的许多信息,转述如下:

  1. post_author:(整数)文章作者的编号    
  2. post_data:(字符)文章发表的日期和时间(YYYY-MM-DD HH-MM-SS)    
  3. post_data_gmt:(字符)文章发表的格林尼治标准时间(GMT) (YYYY-MM-DD HH-MM-SS)    
  4. post_content:(字符)文章内容    
  5. post_title:(字符)文章标题    
  6. post_category:(整数)文章类别的编号。注意:该值在WordPress 2.1之后的版本总为0。定义文章的类别时可使用 get_the_category()函数。    
  7. post_excerpt:(字符)文章摘要    
  8. post_status:(字符)文章状态(publish|pending|draft|private|static|object|attachment|inherit|future)    
  9. comment_status:(字符)评论状态(open|closed|registered_only)    
  10. ping_status:(字符)pingback/trackback状态(open|closed)    
  11. post_password:(字符)文章密码    
  12. post_name:(字符)文章的URL嵌套    
  13. to_ping:(字符)要引用的URL链接    
  14. pinged:(字符)引用过的链接    
  15. post_modified:(字符)文章最后修改时间(YYYY-MM-DD HH-MM-SS)    
  16. post_modified_gmt:(字符)文章最后修改GMT时间(YYYY-MM-DD HH-MM-SS)    
  17. post_parent:(整数)父级文章编号(供附件等)    
  18. guid:(字符)文章的一个链接。注意:不能将GUID作为永久链接(虽然在2.5之前的版本中它的确被当作永久链接),也不能将它作为文章的可用链接。GUID是一种独有的标识符,只是目前恰巧成为文章的一个链接。    
  19. post_type:(字符)(日志 | 页面 | 附件)    
  20. post_mime_type:(字符)Mime类型(供附件等)    
  21. comment_count:(整数)评论总数  

 

2.Wordpress查询文章作者的全部文章/部分文章的主要函数及输出

  1. <?php   
  2. global $wpdb;   
  3. //$current_user->ID的话,查询的就是当前登录的用户,所以是不对的;   
  4. $author_id = get_post($id)->post_author;   
  5. $sql =  "SELECT * FROM $wpdb->posts WHERE post_status IN ('publish','static') AND post_author = '$author_id' AND post_type ='post'LIMIT 5" ; //查询作者文章数量   
  6. $posts= $wpdb->get_results($sql);   
  7.     foreach ($posts as $post) {   
  8.   
  9. echo'<li><a href="';the_permalink();echo '" rel="twipsy" title="';the_title();echo '">'. mb_strimwidth(get_the_title(), 0, 20,"...").'</a></li>';   
  10. }   
  11. ?>  

只在无序列表ul里输出一个列表,格式是截断的标题加上链接,查询了仅仅5篇,多了的话,没什么用,这里仅仅是测试。

二、Wordpress用户角色权限

WordPress用户角色或者Wordpress用户权限说是从Wordpress2.0开始,逐渐的完善起来的,默认分以下几种的:

  1. Super Admin超级管理员-针对Wordpress多站点环境,一般人很少接触,所以很少有人提及;   
  2. Administrator管理员 -拥有特定的某一个站点的所有管理权限;   
  3. Editor编辑 -发表文章、编辑文章、并能编辑其他人的文章等等;   
  4. Author作者-能够发布和编辑自己的文章;   
  5. Contributor贡献者或者叫投稿者 -能够撰写和编辑自己的文章、但不能发布;   
  6. Subscriber订阅者 -能够查看评论/添加评论/查看文章,等等。  

 

当新用户在你的Wordpress站点上注册了的时候(假设已经开启注册),他的默认角色可以在Wordpress后台-->设置-->常规页面设置。

下面的用户角色以及对应的权限能力等级对照表翻译自Wordpress官方网站,所在页面:

http://codex.wordpress.org/Roles_and_Capabilities#Capabilities

 

角色 超级管理员 管理员(单个站点) 编辑 作者 贡献者(投稿者) 订阅者
manage_network          
manage_sites          
manage_network_users          
manage_network_plugins          
manage_network_themes          
manage_network_options          
unfiltered_html          
角色 超级管理员 管理员(单个站点) 编辑 作者 贡献者(投稿者) 订阅者
activate_plugins        
create_users 仅单个站点        
delete_plugins        
delete_themes 仅单个站点        
delete_users        
edit_files        
edit_plugins 仅单个站点        
edit_theme_options        
edit_themes 仅单个站点        
edit_users 仅单个站点        
export        
import        
角色 超级管理员 管理员(单个站点) 编辑 作者 贡献者(投稿者) 订阅者
install_plugins 仅单个站点        
install_themes 仅单个站点        
list_users        
manage_options        
promote_users        
remove_users        
switch_themes        
update_core 仅单个站点        
update_plugins 仅单个站点        
update_themes 仅单个站点        
edit_dashboard        
角色 超级管理员 管理员(单个站点) 编辑 作者 贡献者(投稿者) 订阅者
moderate_comments      
manage_categories      
manage_links      
edit_others_posts      
edit_pages      
edit_others_pages      
edit_published_pages      
publish_pages      
delete_pages      
delete_others_pages      
delete_published_pages      
delete_others_posts      
delete_private_posts      
edit_private_posts      
阅读_private_posts      
delete_private_pages      
edit_private_pages      
阅读_private_pages      
角色 超级管理员 管理员(单个站点) 编辑 作者 贡献者(投稿者) 订阅者
edit_published_posts    
upload_files    
create_product    
publish_posts    
delete_published_posts    
edit_posts  
delete_posts  
阅读
角色 超级管理员 管理员(单个站点) 编辑 作者 贡献者(投稿者) 订阅者

 

1.查询Wordpress文章作者的角色

在本文的开头,我们已经知道如何获取Wordpress某一篇文章的作者ID了,现在就来获取其角色:

  1. $user_id=get_post($id)->post_author;   
  2. if(user_can($user_id,'install_plugins')){echo'管理员';}   
  3. elseif(user_can($user_id,'edit_others_posts')){echo'管理编辑';}elseif(user_can($user_id,'publish_posts')){echo'作者';}elseif(user_can($user_id,'delete_posts')){echo'贡献者';}elseif(user_can($user_id,'read')){echo'订阅者';}   

管理员和编辑都能publish_posts,但是这里的判断有先后顺序,所以不用担心这个问题,这个判断是不错的!

WordPress某篇文章的作者是否有某权限的推荐函数:

  1. if ( author_can( $post, $capability ) ) {      
  2. // 如果文章 $post 的作者拥有 $capability 时执行的动作      
  3. }    

这个相对简单一些,可以直接去判断,所以我再某个项目中最终使用了这个函数。参数中的$post可以是文章自身,也可以是文章ID,使用起来很方便!

  1. if(author_can($post->ID,'install_plugins'))   
  2. {echo'<span class="label label-warning role">管理员</span>';}elseif(author_can($post->ID,'edit_others_posts')){echo'管理编辑';}elseif(author_can($post->ID,'publish_posts')){echo'作者';}elseif(author_can($post->ID,'delete_posts')){echo'投稿者';}elseif(author_can($post->ID,'read')){echo'订阅者';}  

2.Wordpress当前登录者的权限/权限等级

这个函数是经常被使用的,使用的是权限等级,Wordpress官方已经声明:从Wordpress3.0,已经废弃了对这个权限等级制度的支持,所以,网上到处乱飞的复制文章,谨慎对待吧!

  1. <?php if(current_user_can('level_10')){ echo '管理员';}elseif(current_user_can('level_7')){ echo '管理编辑';}elseif(current_user_can('level_4')){ echo '作者';}elseif(current_user_can('level_4')){ echo '贡献者';}elseif(current_user_can('level_0')){ echo '订阅者';}   
  2.     ?>  

:本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可, 转载请附上原文出处链接。
1、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
2、本站提供的模板、软件工具等其他资源,均不包含技术服务,请大家谅解!
3、本站提供的资源仅供下载者参考学习,请勿用于任何商业用途,请24小时内删除!
4、如需商用,请购买正版,由于未及时购买正版发生的侵权行为,与本站无关。
5、本站部分资源存放于百度网盘或其他网盘中,请提前注册好百度网盘账号,下载安装百度网盘客户端或其他网盘客户端进行下载;
6、本站部分资源文件是经压缩后的,请下载后安装解压软件,推荐使用WinRAR和7-Zip解压软件。
7、如果本站提供的资源侵犯到了您的权益,请邮件联系: 442469558@qq.com 进行处理!

猪小侠源码-最新源码下载平台 WordPress教程 WordPress查询文章作者的文章数及WordPress用户角色/权限(wordpress教程菜鸟教程)(php教程 菜鸟教程) http://www.20zxx.cn/417609/wordpres/wordpressq.html

猪小侠源码,优质资源分享网

常见问题
  • 本站所有资源版权均属于原作者所有,均只能用于参考学习,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,建议提前注册好百度网盘账号,使用百度网盘客户端下载
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务