我正在构建一个WP插件,它定义了一些额外的URL、查询vars和模板。
我想在模板中使用get_query_var("wps_service_id");,但是不管我做什么,它都不会返回任何内容。
我已将额外的查询vars 就像文档所解释的白化。
add_filter('query_vars', function ($query_vars) {
$query_vars[] = 'wps_service_id';
return $query_vars;
});我正在定义额外的URL并加载正确的模板,如下所示:
add_action('init', function () {
add_rewrite_rule(
'services/([a-z0-9-]+)/?$',
'index.php?wps_service_id=$matches[1]',
'top'
);
});
add_action('parse_request', function (&$wp) {
if (array_key_exists('wps_service_id', $wp->query_vars)) {
require plugin_dir_path(__DIR__) . "views/service.php";
exit();
}
return;
});模板正在加载,所以WP在某种程度上清楚地读取和解释查询vars。为什么我不能用get_query_var读取它并在模板中使用它
发布于 2021-12-10 08:23:55
使用“array_key_exists”是正确的吗?您应该使用' in _array',因为您在$query_vars[] =‘wps_service_id’中指定了一个值而不是一个键;
向以下机构查询:
error_log( array_key_exists('wps_service_id', $wp->query_vars));
error_log( in_array('wps_service_id', $wp->query_vars));https://stackoverflow.com/questions/70200685
复制相似问题