目前我正在开发(至少尝试;)处理自定义图像库的插件。但我偶然发现了一个问题。我试着想象一下。
我已经创建了自定义菜单页,可以在上面编辑库选项,也可以添加/删除/编辑库元素。我确实为每个库项目添加了链接,所以在选择“编辑”后,我可以修改元素。
function column_rls_name($item) {
$actions = array(
\'edit\' => sprintf(\'<a href="?page=%s&action=%s&rls_element=%s">Edit</a>\',$_REQUEST[\'page\'],\'edit\',$item[\'rls_name\']),
);
return sprintf(\'%1$s %2$s\', $item[\'rls_name\'], $this->row_actions($actions) );
}
单击元素上的“编辑”时,问题开始出现。它应该重定向到设置页面。
这里我有一个问题。最好的方法是什么。是否存在任何有助于创建此类页面(并检测重定向)的助手函数/挂钩等。
当然,我可以在负责显示主库选项的功能中这样做,例如:
if($_GET[\'action\']==\'edit\')
//then do sth
else
//display main gallery options
但我认为这不是最好的办法。
我想知道我可以使用哪些功能,从创建自定义链接,创建自定义页面和注册它们。
触发action=edit时应使用什么方法。如何在实际页面上找到它是需要的。如何显示与内容相关的页面。
wp-admin/options-general.php?page=rls_logotypes&action=edit&rls_element=element1
SO网友:Ralf912
获取特定管理页面的url(例如设置页面(options general.php)):
admin_url( \'options-general.php\' )
Codex admin_url()
向url添加查询参数:
$params = array(
\'page\' => $_REQUEST[\'page\'],
\'action\' => \'edit\',
\'rls_element\' => $item[\'rls_name\']
);
$url = add_query_arg( $params, $org_url );
Codex add_query_arg()
将a和b放在一起:
$params = array(
\'page\' => $_REQUEST[\'page\'],
\'action\' => \'edit\',
\'rls_element\' => $item[\'rls_name\']
);
$url = add_query_arg( $params, admin_url( \'options-general.php\' ) );
现在我们可以创建链接:
public function column_rls_name( $item ){
$actions = array(
\'edit\' => $this->create_admin_link(
array(
\'text\' => \'Edit\',
\'action\' => \'edit\',
\'item\' => $item[\'rls_name\']
)
)
);
return sprintf( \'%1$s %2$s\', $item[\'rls_name\'], $this->row_actions( $actions ) );
}
public function create_admin_link( $args = array() ){
$params = array(
\'page\' => $_REQUEST[\'page\'],
\'action\' => $args[\'action\'],
\'rls_element\' => $args[\'item\']
);
$url = add_query_arg( $params, admin_url( \'options-general.php\' ) );
return sprintf( \'<a href="%s">%s</a>\', $url, $args[\'text\'] );
}