【问题标题】:Wordpress separate php file errorWordpress 单独的 php 文件错误
【发布时间】:2017-09-22 01:05:03
【问题描述】:

这是我的问题。 我创建了一个管理页面,在其中显示不同的数据列表: 示例:

 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 文件也是他的一部分,他可以在这里使用登录会话或类似的东西?

【问题讨论】:

  • 对wordpress不太熟悉,但是is_admin()函数位于wp-includes/load.php中也可以试试
  • 该 URL 是否与 wordpress 服务器在同一个域中?听起来 cookie/会话无法正常工作。

标签: php wordpress


【解决方案1】:

is_admin() 指示您在管理页面上是否不验证用户角色。

你要找的是:current_user_can('administrator')

【讨论】:

  • 这个函数在单独的php文件中也不起作用。
  • 像这样访问当前用户:$current_user = wp_get_current_user();
猜你喜欢
  • 2015-08-03
  • 1970-01-01
  • 1970-01-01
  • 2018-04-08
  • 1970-01-01
  • 2017-09-04
  • 2013-12-30
  • 1970-01-01
  • 2011-02-03
相关资源
最近更新 更多