2017-09-21 16 views
0

這是我的問題。 我已經創建了一個管理頁面,在這裏我顯示不同的數據列表: 例如:WordPress單獨的php文件錯誤

echo '<div> <p><a href="http://example.com/admin-bar/request_data_by_query/change-request-data.php?id='.$name['id'].'" target="_blank">'. $name['name']. '</a></p> </div>'; 

下面的代碼工作正常,在此頁上:

if (! is_admin()) { 
    echo "You are viewing the theme"; 
} else { 
    echo "You are viewing the WordPress Administration Panels"; 
} 

它給我的答案,因爲它看,我是一個用戶,我是管理員。

正如你可以在我的href中看到的,我發送GET方法數據到文件change-request-data.php。 在這個文件中,我得到了我的GET ID並顯示了id = x的表單。

<?php 
include "../../wp-load.php";  
global $wpdb; 
$request_id_data = $wpdb->get_results("SELECT * FROM request_info where id=$request_id ORDER BY name ASC;", ARRAY_A); 

和其他的東西......

我的問題是,如果我嘗試在此PHP文件使用is_admin代碼,它說我,我不是管理員。 在這個php文件不工作的功能,如is_admin或例如get_current_user_id()會給我0,但我不是0 ... 我怎麼能解釋WordPress的,這個PHP文件也是他的一部分,他可以使用會話登錄這裏或類似的東西?

+0

不是很熟悉的WordPress但is_admin()函數位於WP-包括/ load.php嘗試包括太 –

+0

是在URL上相同域名作爲WordPress的服務器?聽起來像Cookie /會話無法正常工作。 –

回答

0

is_admin()指示您是否在管理頁面上驗證用戶角色。

你想找的是:current_user_can(「管理員」)

+0

@Станислав-Строянецкий爲您工作? – Dedering

+0

該功能在單獨的php文件中也不起作用。 –

+0

訪問當前用戶,如下所示:'$ current_user = wp_get_current_user();' – Dedering