有時候需要判斷wordpress站點(diǎn)是否設(shè)置了偽靜態(tài),即后臺固定鏈接設(shè)置中的選擇了非”默認(rèn)”的結(jié)構(gòu)。
創(chuàng)新互聯(lián)專注于沙依巴克企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。沙依巴克網(wǎng)站建設(shè)公司,為沙依巴克等地區(qū)提供建站服務(wù)。全流程按需設(shè)計網(wǎng)站,專業(yè)設(shè)計,全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
下面看一下判斷方法:
若是只寫get_option(‘permalink_structure’) 判斷是否是自定義結(jié)構(gòu)。
is_archive只能判斷當(dāng)前是不是存檔頁,并不能判斷具體是哪個存檔頁
如果你的news, dljz等是自定義post_type,可以參考is_post_type_archive()這個函數(shù)。
但如果是分類的,就得使用以下方法:
if?(?is_category()?)?{
$cid?=?intval(?get_query_var(?'cat'?)?);
$category?=?get_cateogry(?$cid?);
switch?(?$category-slug?)?{
case?'news':
$bannerimg?=?'news.jpg';
break;
case?'dljz':
$bannerimg?=?'dljz.jpg';
break;
case?'zcgs':
$bannerimg?=?'zcgs.jpg';
break;
default:
$bannerimg?=?'default-banner.jpg';
break;
}
}
以上代碼提供參考哦。
注:以下內(nèi)容在WP
3.4+上測試通過current_user_can()的正確用法current_user_can()文檔中有一句話要注意一下Do
not
pass
a
role
name
to
current_user_can(),
as
this
is
not
guaranteed
to
work
correctly.意思是說傳遞用戶角色名稱(如author、contributor)作為參數(shù)不能100%保證返回正確的結(jié)果,正確的用法是傳遞$capability,從這個函數(shù)的表面意思看,參數(shù)是權(quán)限比參數(shù)是角色名稱更靠譜。所以,要根據(jù)不同角色擁有的權(quán)限來判斷用戶角色,用戶權(quán)限可以在Roles
and
Capabilities中找到。判斷用戶是否為管理員(Administrator)if(
current_user_can(
'manage_options'
)
)
{
echo
'The
current
user
is
a
administrator';
}判斷用戶是否為編輯(Editor)if(
current_user_can(
'publish_pages'
)
!current_user_can(
'manage_options'
)
)
{
echo
'The
current
user
is
an
editor';
}判斷用戶是否為作者(Author)if(
current_user_can(
'publish_posts'
)
!current_user_can(
'publish_pages'
)
)
{
echo
'The
current
user
is
an
author';
}判斷用戶是否為投稿者(Contributor)if(
current_user_can(
'edit_posts'
)
!current_user_can(
'publish_posts'
)
)
{
echo
'The
current
user
is
a
contributor';
}判斷用戶是否為訂閱者(Subscriber)if(
current_user_can(
'read'
)
!current_user_can(
'edit_posts'
)
)
{
echo
'The
current
user
is
a
subscriber';
}用$current_user判斷$current_user是WordPress的一個全局變量,當(dāng)用戶登錄后,這個里面就會有用戶的角色和權(quán)限信息。當(dāng)WordPress的init
action執(zhí)行后,就可以安全的使用$current_user全局變量了。在模板文件中判斷登錄用戶是否為作者(Author)global
$current_user;
if(
$current_user-roles[0]
==
'author'
)
{
echo
'The
current
user
is
an
author';
}
在functions.php中判斷用戶是否為作者(Author)add_action(
'init',
'check_user_role'
);
function
check_user_role()
{
global
$current_user;
if(
$current_user-roles[0]
==
'author'
)
{
echo
'The
current
user
is
an
author';
}
}
之所以要使用add_action(
'init',
'check_user_role'
);是因?yàn)?current_user這個全部變量到init
action執(zhí)行時才完成賦值,既然要讀它的內(nèi)容,至少要等到它的內(nèi)容準(zhǔn)備好后再讀取。functions.php的代碼先與init
action執(zhí)行,所以在functions.php中直接寫global
$current_user是無法獲取用戶信息的。詳細(xì)信息可以參考《WordPress
Actions加載順序》。檢查用戶角色之前,還可以先檢查一下用戶是否登錄
get_post_type() == '你的自定義類型'
如果是內(nèi)頁的話$post_type = $post-post_type;
參考:WordPress自定義文章類型和自定義分類法