如何重定向到管理部分中自定义页面上的操作

时间:2012-12-08 作者:dfens

目前我正在开发(至少尝试;)处理自定义图像库的插件。但我偶然发现了一个问题。我试着想象一下。

我已经创建了自定义菜单页,可以在上面编辑库选项,也可以添加/删除/编辑库元素。我确实为每个库项目添加了链接,所以在选择“编辑”后,我可以修改元素。

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

1 个回复
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\'] );

}

结束

相关推荐

限制WP-Admin中的摘录字段为文字

是否可以将文章页面上的摘录字段限制为文字?请注意,我知道可以重复摘录并限制其文字,但我希望字段本身限制字数,类似于文本区域的字符限制。Is such thing possible? 也许是Javascript解决方案?也许类似于this plugin 对角色生物字段执行(尽管其限制基于角色数量)。这是因为我运行了一个多作者平台,在这个平台上,用户经常会犯错误,超过帖子列表中打印的字数限制。