<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    倉(cāng)藍(lán)

    日記本

      BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
      23 Posts :: 0 Stories :: 1 Comments :: 0 Trackbacks
    本文詳細(xì)介紹了如何查詢Wordpress某一篇文章作者的文章以及其權(quán)限,附帶介紹了Wordpress的用戶權(quán)限系統(tǒng),指出了網(wǎng)上到處復(fù)制的某些文章存在的問(wèn)題。

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

    1.獲取當(dāng)前文章作者的ID

    1. get_post($id)->post_author  

    這才是獲取Wordpress當(dāng)前文章作者ID的正確方式,網(wǎng)上到處亂傳的那篇名叫“WordPress 通過(guò)文章ID獲取文章標(biāo)題、內(nèi)容等信息”的文章里的說(shuō)法是錯(cuò)誤的,雖然是錯(cuò)誤的,但是卻被廣泛的Ctrl+C然后Ctrl+V,以訛傳訛,不可思議啊。

    另外get_post($id)->可以獲取與文章有關(guān)的許多信息,轉(zhuǎn)述如下:

    1. post_author:(整數(shù))文章作者的編號(hào)    
    2. post_data:(字符)文章發(fā)表的日期和時(shí)間(YYYY-MM-DD HH-MM-SS)    
    3. post_data_gmt:(字符)文章發(fā)表的格林尼治標(biāo)準(zhǔn)時(shí)間(GMT) (YYYY-MM-DD HH-MM-SS)    
    4. post_content:(字符)文章內(nèi)容    
    5. post_title:(字符)文章標(biāo)題    
    6. post_category:(整數(shù))文章類別的編號(hào)。注意:該值在WordPress 2.1之后的版本總為0。定義文章的類別時(shí)可使用 get_the_category()函數(shù)。    
    7. post_excerpt:(字符)文章摘要    
    8. post_status:(字符)文章狀態(tài)(publish|pending|draft|private|static|object|attachment|inherit|future)    
    9. comment_status:(字符)評(píng)論狀態(tài)(open|closed|registered_only)    
    10. ping_status:(字符)pingback/trackback狀態(tài)(open|closed)    
    11. post_password:(字符)文章密碼    
    12. post_name:(字符)文章的URL嵌套    
    13. to_ping:(字符)要引用的URL鏈接    
    14. pinged:(字符)引用過(guò)的鏈接    
    15. post_modified:(字符)文章最后修改時(shí)間(YYYY-MM-DD HH-MM-SS)    
    16. post_modified_gmt:(字符)文章最后修改GMT時(shí)間(YYYY-MM-DD HH-MM-SS)    
    17. post_parent:(整數(shù))父級(jí)文章編號(hào)(供附件等)    
    18. guid:(字符)文章的一個(gè)鏈接。注意:不能將GUID作為永久鏈接(雖然在2.5之前的版本中它的確被當(dāng)作永久鏈接),也不能將它作為文章的可用鏈接。GUID是一種獨(dú)有的標(biāo)識(shí)符,只是目前恰巧成為文章的一個(gè)鏈接。    
    19. post_type:(字符)(日志 | 頁(yè)面 | 附件)    
    20. post_mime_type:(字符)Mime類型(供附件等)    
    21. comment_count:(整數(shù))評(píng)論總數(shù)  

     

    2.Wordpress查詢文章作者的全部文章/部分文章的主要函數(shù)及輸出

    1. <?php   
    2. global $wpdb;   
    3. //$current_user->ID的話,查詢的就是當(dāng)前登錄的用戶,所以是不對(duì)的;   
    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" ; //查詢作者文章數(shù)量   
    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. ?>  

    只在無(wú)序列表ul里輸出一個(gè)列表,格式是截?cái)嗟臉?biāo)題加上鏈接,查詢了僅僅5篇,多了的話,沒什么用,這里僅僅是測(cè)試。

    二、Wordpress用戶角色與權(quán)限

    WordPress用戶角色或者Wordpress用戶權(quán)限說(shuō)是從Wordpress2.0開始,逐漸的完善起來(lái)的,默認(rèn)分以下幾種的:

    1. Super Admin超級(jí)管理員-針對(duì)Wordpress多站點(diǎn)環(huán)境,一般人很少接觸,所以很少有人提及;   
    2. Administrator管理員 -擁有特定的某一個(gè)站點(diǎn)的所有管理權(quán)限;   
    3. Editor編輯 -發(fā)表文章、編輯文章、并能編輯其他人的文章等等;   
    4. Author作者-能夠發(fā)布和編輯自己的文章;   
    5. Contributor貢獻(xiàn)者或者叫投稿者 -能夠撰寫和編輯自己的文章、但不能發(fā)布;   
    6. Subscriber訂閱者 -能夠查看評(píng)論/添加評(píng)論/查看文章,等等。  

     

    當(dāng)新用戶在你的Wordpress站點(diǎn)上注冊(cè)了的時(shí)候(假設(shè)已經(jīng)開啟注冊(cè)),他的默認(rèn)角色可以在Wordpress后臺(tái)-->設(shè)置-->常規(guī)頁(yè)面設(shè)置。

    下面的用戶角色以及對(duì)應(yīng)的權(quán)限能力等級(jí)對(duì)照表翻譯自Wordpress官方網(wǎng)站,所在頁(yè)面:

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

     

    角色超級(jí)管理員管理員(單個(gè)站點(diǎn))編輯作者貢獻(xiàn)者(投稿者)訂閱者
    manage_network




    manage_sites




    manage_network_users




    manage_network_plugins




    manage_network_themes




    manage_network_options




    unfiltered_html




    角色超級(jí)管理員管理員(單個(gè)站點(diǎn))編輯作者貢獻(xiàn)者(投稿者)訂閱者
    activate_plugins



    create_users僅單個(gè)站點(diǎn)



    delete_plugins



    delete_themes僅單個(gè)站點(diǎn)



    delete_users



    edit_files



    edit_plugins僅單個(gè)站點(diǎn)



    edit_theme_options



    edit_themes僅單個(gè)站點(diǎn)



    edit_users僅單個(gè)站點(diǎn)



    export



    import



    角色超級(jí)管理員管理員(單個(gè)站點(diǎn))編輯作者貢獻(xiàn)者(投稿者)訂閱者
    install_plugins僅單個(gè)站點(diǎn)



    install_themes僅單個(gè)站點(diǎn)



    list_users



    manage_options



    promote_users



    remove_users



    switch_themes



    update_core僅單個(gè)站點(diǎn)



    update_plugins僅單個(gè)站點(diǎn)



    update_themes僅單個(gè)站點(diǎn)



    edit_dashboard



    角色超級(jí)管理員管理員(單個(gè)站點(diǎn))編輯作者貢獻(xiàn)者(投稿者)訂閱者
    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


    角色超級(jí)管理員管理員(單個(gè)站點(diǎn))編輯作者貢獻(xiàn)者(投稿者)訂閱者
    edit_published_posts

    upload_files

    create_product

    publish_posts

    delete_published_posts

    edit_posts
    delete_posts
    閱讀
    角色超級(jí)管理員管理員(單個(gè)站點(diǎn))編輯作者貢獻(xiàn)者(投稿者)訂閱者

     

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

    在本文的開頭,我們已經(jīng)知道如何獲取Wordpress某一篇文章的作者ID了,現(xiàn)在就來(lái)獲取其角色:

    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'貢獻(xiàn)者';}elseif(user_can($user_id,'read')){echo'訂閱者';}   

    管理員和編輯都能publish_posts,但是這里的判斷有先后順序,所以不用擔(dān)心這個(gè)問(wèn)題,這個(gè)判斷是不錯(cuò)的!

    WordPress某篇文章的作者是否有某權(quán)限的推薦函數(shù)

    1. if ( author_can( $post, $capability ) ) {      
    2. // 如果文章 $post 的作者擁有 $capability 時(shí)執(zhí)行的動(dòng)作      
    3. }    

    這個(gè)相對(duì)簡(jiǎn)單一些,可以直接去判斷,所以我再某個(gè)項(xiàng)目中最終使用了這個(gè)函數(shù)。參數(shù)中的$post可以是文章自身,也可以是文章ID,使用起來(lái)很方便!

    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當(dāng)前登錄者的權(quán)限/權(quán)限等級(jí)

    這個(gè)函數(shù)是經(jīng)常被使用的,使用的是權(quán)限等級(jí),Wordpress官方已經(jīng)聲明:從Wordpress3.0,已經(jīng)廢棄了對(duì)這個(gè)權(quán)限等級(jí)制度的支持,所以,網(wǎng)上到處亂飛的復(fù)制文章,謹(jǐn)慎對(duì)待吧!

    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 '貢獻(xiàn)者';}elseif(current_user_can('level_0')){ echo '訂閱者';}   
    2.     ?>  

     

    posted on 2013-12-05 10:49 cangshi 閱讀(2428) 評(píng)論(0)  編輯  收藏 所屬分類: php
    主站蜘蛛池模板: 777亚洲精品乱码久久久久久 | 特级毛片免费播放| 青春禁区视频在线观看直播免费| 亚洲资源在线观看| 67194成手机免费观看| 亚洲黄色高清视频| 国产成人yy免费视频| 日本亚洲色大成网站www久久| 女人被免费视频网站| 日日摸日日碰夜夜爽亚洲| 又黄又大又爽免费视频| 人体大胆做受免费视频| 亚洲精品成人片在线播放| 久久综合国产乱子伦精品免费| 亚洲一区二区三区夜色| 日韩免费精品视频| 亚洲av中文无码乱人伦在线观看 | 动漫黄网站免费永久在线观看| 97久久国产亚洲精品超碰热| 国产午夜免费福利红片| 国产高潮久久免费观看| 亚洲Aⅴ无码专区在线观看q| 免费不卡视频一卡二卡| 白白色免费在线视频| 国产成人亚洲精品青草天美| 久久久久久国产a免费观看黄色大片| 中文有码亚洲制服av片| 亚洲乱码国产一区网址| 最近免费中文字幕大全免费| 亚洲一卡2卡三卡4卡无卡下载 | 亚洲av永久无码制服河南实里| 国产免费不卡视频| 老外毛片免费视频播放| 久久精品国产亚洲AV麻豆王友容| 97视频热人人精品免费| AAAAA级少妇高潮大片免费看| 亚洲成无码人在线观看| 亚洲精品A在线观看| 国产91色综合久久免费分享| 十八禁的黄污污免费网站| 亚洲小说图片视频|