Ame*_*iel 7 php wordpress query-variables
我试图在 wp-admin/admin 仪表板上获取当前页面 url,这可能吗?
我正在尝试使用这些代码,但我似乎无法让它工作。
global $wp;
$current_page = add_query_arg( $wp->query_vars, home_url( $wp->request ) );
Run Code Online (Sandbox Code Playgroud)
我想要的输出是这样的:https://example.com/1/wp-admin/admin.php?page=test
但相反,输出变成这样:/1/wp-admin/admin.php?page=test&=https://example.com/1
任何帮助是极大的赞赏
我使用http_build_query()函数找到了一个非常简单的解决方案:
$current_page = admin_url(sprintf('admin.php?%s', http_build_query($_GET)));
Run Code Online (Sandbox Code Playgroud)
http_build_query()会自动将所有$_GET参数转换为查询字符串,该字符串可以使用 附加到基本管理 URL sprintf()。
但是,这不支持具有不同名称的页面(例如:edit.php而不是admin.php)。您可以使用类似的东西作为辅助函数来支持每个管理页面:
/**
* Get the base URL of the current admin page, with query params.
*
* @return string
*/
function get_current_admin_url(): string
{
return admin_url(sprintf(basename($_SERVER['REQUEST_URI'])));
}
# on your admin page..
$current_page = get_current_admin_url();
Run Code Online (Sandbox Code Playgroud)
使用此函数时要小心,URL 可以由最终用户操作 /!\
要检索 WordPress 站点管理区域的 URL,您可以使用admin_url(): https: //developer.wordpress.org/reference/functions/admin_url/
它接受一条路径。admin_url('admin.php?page=test');所以如果你喜欢硬编码,你可以这样做。但我猜你想动态地拥有它。
我假设您的页面是管理菜单的一部分。每个菜单页面都会在 URL 中自动包含一个页面参数,例如page=test。
您想要获取当前正在查看的页面的 URL,因此可以使用 来从 URL 中获取页面参数$_GET。
将所有这些信息放在一起,您的代码可能如下所示:
$current_page = admin_url( "admin.php?page=".$_GET["page"] );
| 归档时间: |
|
| 查看次数: |
12840 次 |
| 最近记录: |