第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

WP functions.php 中 OR 運(yùn)算符的問題

WP functions.php 中 OR 運(yùn)算符的問題

PHP
慕勒3428872 2021-08-28 10:07:34
我們的 Wordpress 網(wǎng)站要求某些頁面僅對具有特定角色的用戶可見。目前,管理員無法訪問指定的頁面$redaktor_pages和$mod_pages。add_action( 'template_redirect', 'restrict_access' );function restrict_access() {    //pages for admins    $admin_pages = is_page(array('veiledning-administrator', 'database'));    //pages for redakt?r    $redaktor_pages = is_page(array('veiledning-redaktor'));    //pages for moderators    $mod_pages = is_page(array(''));    //users forum role    $forum_role = bbp_get_user_display_role( get_current_user_id() );    if( (!current_user_can('administrator') && $admin_pages) || ( (!current_user_can('editor') || !current_user_can('administrator') ) && $redaktor_pages ) || ( ($forum_role!='moderator' || !current_user_can('administrator')) && $mod_pages) ) {        wp_redirect('/');        exit;    } }我在 if 語句中使用邏輯運(yùn)算符的地方:(a || b) && c函數(shù)似乎忽略了“b”。我希望“管理員”角色也能夠查看 $redaktor_pages 和 $mod_pages 中指定的頁面,因?yàn)樗?if 語句中。從邏輯上講,我希望: (a = false || b = true) = true實(shí)際發(fā)生的是“管理員”無法查看特定變量中列出的頁面,除非它們是 $admin_pages這使得 if 語句的那部分看起來好像是這樣處理的: (a = false || b = true) = false
查看完整描述

1 回答

?
炎炎設(shè)計

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個贊

所以這里有 3 組條件,如果其中任何一個條件為真,則訪問被拒絕。


對于您的第二個和第三個條件,您的問題說您正在使用,(a || b) && c但事實(shí)并非如此。你正在與之合作,(!a || !b) && c這是一件非常不同的事情。想想OR和的組合是什么NOT意思。兩個條件都被評估,其中一個為真導(dǎo)致條件為真。


因此,當(dāng)您檢查是否是管理員時NOT editor OR NOT administrator,條件評估為真,因?yàn)樗麄兪荖OT編輯者。您想用它AND來檢查兩個條件是否都為真。檢查管理員的NOT editor AND NOT administrator評估結(jié)果為 false。


function restrict_access() {

    //pages for admins

    $admin_pages = is_page(array('veiledning-administrator', 'database'));

    //pages for redakt?r

    $redaktor_pages = is_page(array('veiledning-redaktor'));

    //pages for moderators

    $mod_pages = is_page(array(''));


    //users forum role

    $forum_role = bbp_get_user_display_role( get_current_user_id() );


    if(

        (!current_user_can('administrator') && $admin_pages) || 

        (!current_user_can('editor') && !current_user_can('administrator') && $redaktor_pages) ||

        ($forum_role != 'moderator' && !current_user_can('administrator') && $mod_pages)

    ) {

        wp_redirect('/');

        exit;

    } 

}

請注意,&&具有更高的優(yōu)先級,||因此您在此處獲得的額外括號是隱含且不必要的。但我發(fā)現(xiàn)無論如何最好明確包含它們。


查看完整回答
反對 回復(fù) 2021-08-28
  • 1 回答
  • 0 關(guān)注
  • 156 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號