定西做網站:改進WordPress用戶系統(只需3步)

可以說,WordPress最好的地方之一就是它的各種潛在用途。對于許多博客來說,這可能意味著很少有來自WordPress用戶系統的內容-只有一個帳戶可以執行所有的管理和內容創建。但是,對于其他用戶(特別是較大的站點),可能需要擁有和管理許多用戶帳戶。

定西做網站由于WordPress中只有五個用戶角色,大型站點的管理員有時可能會發現默認選項有點限制。給一個用戶什么樣的權限,比如說,誰應該能夠上傳文件,但你更愿意批準誰的帖子才能上線?在核心WordPress中沒有這樣的選擇。

然而,WordPress用戶系統在改進和擴展方面有很大的潛力。本文將介紹三個不同的步驟,您可以作為管理員來改進WordPress用戶系統。

規劃的重要性(尤其是在這里!)

在我們定西做網站開始之前,一個簡短的詞,我認為會變得越來越清楚,在整個帖子:需要仔細規劃,然后實施這些步驟在您的網站。當您可以使用經過改進的用戶系統的功能時,原因將變得更加明顯。然而,從本質上說,計劃將防止您在開始使用系統之后進行進一步的更改。

我是一個堅定的擁護者,要確保你知道你想要做什么以及為什么以前讓它發生。根據我的經驗,第一次這樣做大大減少了將來將數據遷移到新系統所花費的時間。一開始就能做你想做的事將要節省你的時間和精力。

因此,一旦您閱讀了這些想法,我就不會建議直接去實現它們;我甚至不會建議將它們直接應用到客戶端站點中,當它們的功能達到他們想要的程度時,我甚至不會建議直接將它們應用到客戶機站點上。確保您正在做他們需要的事情,然后實現它:就像我說的,從長遠來看,它將節省您的時間。

別擋道,帶著向導。

步驟1:安裝用戶角色插件

正如任何WordPress管理員應該知道的那樣,當希望向安裝添加功能時,首先要查看的是廣泛的WordPress插件目錄。

當涉及到根據安裝的具體需要使用戶系統更加可行時,已經有一些非常棒的插件可以讓管理員操縱用戶角色。WPFront‘s特別成熟,其特點包括:

  • 每個用戶的多個權限級別。
  • 編輯任何用戶權限組。
  • 無限地創造額外的角色。

WPFront's User Role Editor

任何類似的插件都可能對站點管理員有用,給每個用戶適當的用戶權限。

在使用用戶角色插件進行安裝時,值得提前計劃,考慮所有未來用戶在創建和分配新角色之前可能需要做些什么。

這僅僅是因為一種零敲碎打的方法可能會給您留下一個功能更強大的用戶權限系統,但由于它隨著時間的推移而變得如此復雜,使得不同權限的數組難以管理,因此是無法導航的。提出一個簡單的結構,特別是要記住,在創建新角色之前,用戶可以擁有多個權限級別,這將確保您的安裝及其改進的用戶系統為滿足未來的任何需求做好了充分的準備。

另外要記住的一點是,在創建額外的用戶角色之前,應該安裝和激活將在站點上使用的其他插件。這是因為一些高級插件(包括bbPress、BuddyPress和WooCommerce)可能會添加自己的用戶角色和/或權限。

第2步:使您的作者可接觸

任何多用戶博客的一個關鍵部分將是使作者具有個性。增加讀者與作家的互動將使讀者更有可能繼續閱讀他們的文章。

WordPress實際上曾經有一些接觸方法內置到它的配置文件系統中,盡管在最近的版本中,這些方法已經從核心中刪除了。以更貼切的方式將此功能重新添加到系統中的可能性仍然存在,對于多用戶站點來說也是非常有益的。有些主題可能已經內置了類似的特性,但是可以通過對主題代碼的一些小調整來擴展這些特性(但是請記住使用子主題的重要性).

加到Functions.php

function add_author_contacts( $author_contacts ) {
$author_contacts['facebook'] = __( 'Facebook URL', 'text_domain' );
$author_contacts['googleplus'] = __( 'Google+ URL', 'text_domain' );
$author_contacts['twitter'] = __( 'Twitter Username', 'text_domain' );
// Copy and add any extras...
return $user_contact_method;
}
add_filter( 'user_contactmethods', 'add_author_contacts' );

這將為每個鏈接添加額外的文本框。聯系信息.

Extra text boxes to your profile pages

增加主題

設置這些內容后,可以使用the_author_meta()-例如,如果填寫了字段,就會出現指向作者Twitter配置文件的鏈接:

<?php if( get_the_author_meta( "twitter" ) != "") { ?>
<div class="author-media-link twitter"><a href="http://twitter.com/<?php echo the_author_meta( "twitter" ); ?>" target="_blank" title="<?php echo the_author_meta( "display_name" ); ?>'s Twitter">@<strong><?php echo the_author_meta( "twitter" ); ?></strong></a></div>
<?php } ?>

這樣,網站上使用的主題可以允許高度定制的作者詳細信息。

這些特性的有效實現可能是添加了一個Auth.php頁(如果主題尚未包含主題)。或者,添加(或編輯,如果主題已經有一個)的作者傳記框,以一種特定的方式定制到一個網站,可以是一個很好的特點,每一篇文章。Gravatar也使這個看起來很棒。

將其編碼成一個主題并不是完全必要的,如果它看起來太讓人望而生畏,那么就有一些插件,例如時尚作家盒可用。但是,將代碼添加到主題中的好處是,它允許管理員進行更大的操作。除了與社交網絡的鏈接外,還可以添加其他鏈接,如部門頁面或聯系人表單;編碼解決方案甚至可以添加額外的文本,例如組織中的職位或級別。

第三步:為作家使用前端

如果您已經做到了這一點,那么可以公平地說,您對如何使用WordPress的基本功能比較滿意。然而,在有許多作者的網站上,這樣的一款網絡軟件對許多人來說可能是一個巨大的前景。

在我看來,WordPress是一個“一旦你知道怎么做就很容易”的例子,但是沒有理由不嘗試通過在熟悉的網站前端添加少量功能來使第一次網絡緊張的作者更容易地瀏覽它。事實上,也可以為較重的用戶添加一些非常有用的“快速鏈接”。特別是當與用戶角色插件一起使用時(參見步驟1),在主題的前端添加一些只有某些登錄用戶能夠看到的額外內容可以節省大量時間。

對于登錄站點用戶來說,這個額外的前端部分的內容實際上取決于編碼的可行性。例如,如果一個網站想要運行一個系統,讓投稿人至少每周提交一次內容,那么最好開發一個系統,檢查用戶最后一次發布帖子的時間,并顯示一條消息,要求在截止日期過期時提供新內容。

定西做網站在其他情況下,為站點工作人員在前端添加新聞可能會很有幫助,這樣就可以快速看到;對于某些站點來說,只需要歡迎一個不太熟悉Web的用戶回來,并有指令引導他們完成添加內容的過程,這樣管理員就不必每次都這樣做了。

正如我所說,這取決于網站的需要。

Frontend prompt

最基本的是,下面是如何做到這一點-將以下內容添加到Functions.php:

function get_user_role() {
global $current_user;
$user_roles = $current_user->roles;
$user_role = array_shift($user_roles);
return $user_role;
}

然后,如果希望登錄用戶根據角色查看某些內容,請添加以下內容:

<?php if(is_user_logged_in()) {
if(get_user_role()=="administrator") {
// For administrators
}
// etc.
} ?>

這種相對簡單的方法可以大大簡化沒有經驗的用戶的事情,并利用權限系統來造福于作者和管理員。這也是一些非常交互式的WordPress安裝管理員-例如,那些運行BuddyPress≠的管理員-可能會為正常的站點用戶提供服務,歡迎他們通過前端返回站點,這樣后端就只能保留給管理員了。

同樣,如果要將此功能添加到不是您自己的自定義主題中,請記住使用子主題。

如果可能的話,current_user_can( 'manage_options' )可能是確定權限的更好方法-但根據站點授予的權限,這可能無法完全工作。如果使用current_user_can( 'manage_options' ),沒有必要添加到Functions.php.

這些簡單的更改可以使WordPress對讀者、作者和管理員都有更好的效果。