【发布时间】:2021-04-04 18:10:47
【问题描述】:
我正在尝试在 PHP 类文件中检索查询字符串,但它总是为空。
我也尝试将 $cur_tab 存储为全局变量,但每当我在 PHP 类中使用它时,它都是空的。它适用于其他文件。
我不理解的类文件有什么不同?
完整的 URL 类似于:
domain.com/blog/groups/testes-mctestersons/?tab=rejected
我没有看到var_dump($_GET) 的任何输出;
class Groups_Requests extends \um\core\Member_Directory {
/**
* @var int
*/
var $profiles_per_page = 10;
public $cur_tab;
/**
* Groups_Requests constructor.
*/
function __construct() {
parent::__construct();
$this->cur_tab = isset($_GET['tab']) ? $_GET['tab'] : NULL;
add_action( 'wp_ajax_nopriv_um_groups_get_requests', array( $this, 'ajax_get_members' ) );
add_action( 'wp_ajax_um_groups_get_requests', array( $this, 'ajax_get_members' ) );
}
function only_requests( $query ) {
global $wpdb;
$this->cur_tab = isset($_GET['tab']) ? $_GET['tab'] : NULL;
$group_id = $query->query_vars['um_group_id'];
$groups_table_name = UM()->Groups()->setup()->db_groups_table;
if ($cur_tab == "requests"):
$group_meta = $wpdb->prepare(
"{$wpdb->users}.ID IN(
SELECT DISTINCT tbg.user_id1 FROM {$groups_table_name} as tbg
WHERE tbg.user_id1 = {$wpdb->users}.ID AND tbg.group_id = %d AND tbg.status = 'pending_admin_review'
)",
$group_id
);
elseif ($cur_tab == "rejected"):
$group_meta = $wpdb->prepare(
"{$wpdb->users}.ID IN(
SELECT DISTINCT tbg.user_id1 FROM {$groups_table_name} as tbg
WHERE tbg.user_id1 = {$wpdb->users}.ID AND tbg.group_id = %d AND tbg.status = 'rejected'
)",
$group_id
);
else:
$group_meta = $wpdb->prepare(
"{$wpdb->users}.ID IN(
SELECT DISTINCT tbg.user_id1 FROM {$groups_table_name} as tbg
WHERE tbg.user_id1 = {$wpdb->users}.ID AND tbg.group_id = %d AND ( tbg.status = 'pedng_admin_review' OR tbg.status = 'rejected' )
)",
$group_id
);
endif;
$query->query_where = str_replace(
'WHERE 1=1',
"WHERE 1=1 AND (" . $group_meta . " ) ",
$query->query_where );
return $query;
}
}
【问题讨论】:
-
您缺少重要的调试信息:此页面的完整 URL 是什么?
var_dump($_GET);显示什么? -
可能是之前的栏吗?,尝试删除它离开 domain.com/blog/groups/testes-mctestersons?tab=rejected
-
我注意到这是一个 WordPress 环境。 this question 的一些答案可能会对您有所帮助。
-
@TangentiallyPerpendicular 谢谢。我曾尝试使用 get_query_var,但在类文件中它像其他所有内容一样为空。在其他地方进行测试时,它可以工作。也许类文件无法读取 URL?我不知道它是如何工作的。
-
试一下(print_r($_REQUEST));