要在“前端”(在的上下文中不起作用)进行“ WordPress方式”往返wp-admin
,您需要使用3个WordPress函数:
注意:$_GET
如果您这样做,则甚至无需触摸superglobals()。
例
在您需要创建链接的页面上/设置查询变量:
如果是指向此页面的链接,则只需添加查询变量
<a href="<?php echo esc_url( add_query_arg( 'c', $my_value_for_c ) )?>">
如果是到其他页面的链接
<a href="<?php echo esc_url( add_query_arg( 'c', $my_value_for_c, site_url( '/some_other_page/' ) ) )?>">
在您的functions.php或某些插件文件或自定义类中(仅前端):
function add_custom_query_var( $vars ){
$vars[] = "c";
return $vars;
}
add_filter( 'query_vars', 'add_custom_query_var' );
在您希望检索并使用URL中设置的查询var的页面/函数上:
$my_c = get_query_var( 'c' );
在后端(wp-admin
)
在后端,我们永远不会运行wp()
,因此主WP Query不会运行。结果,没有,query vars
并且该query_vars
钩子也没有运行。
在这种情况下,您需要恢复到检查$_GET
超全局性的更标准方法。最好的方法可能是:
$my_c = filter_input( INPUT_GET, "c", FILTER_SANITIZE_STRING );
虽然一时之间你可以做尝试和真实
$my_c = isset( $_GET['c'] ? $_GET['c'] : "";
或其某些变体。