如何在管理部分中处理我在自定义列表表格上的行操作

时间:2017-08-04 作者:Dylan Wagner

我设置了一个插件,由于使用了大量数据,我设置了一个自定义表,并扩展了WP\\u List\\u table类。我知道这是不推荐的,但定制的帖子类型不能提供我所需要的。我计划在发布这个项目时包括一个WP\\u List\\u Table类的副本,以防止任何不必要的bug。。。

无论如何,我有下面的代码,并且已经阅读了很多关于扩展WP\\u List\\u Table类的教程,但遇到了困难。

function column_name( $item ) {
  $title = \'<strong>\' . $item[\'projectName\'] . \'</strong>\';

  $actions = [
    \'edit\'    => sprintf( \'<a href="?page=%s&action=%s&project=%s">Edit</a>\',
      $_REQUEST[\'page\'], \'edit\', $item[\'projectID\'] ),
    \'delete\'  => sprintf( \'<a href="?page=%s&action=%s&project=%s">Delete</a>\',
      $_REQUEST[\'page\'], \'delete\', $item[\'projectID\'] )
  ];

  return $title . $this->row_actions( $actions );
}
当我单击“编辑”时,只会发生url更改。我不知道单击“编辑”按钮时,如何实际生成表单/管理页面来编辑/更新项目。单击“delete”(删除)时,我也会遇到重定向错误,我计划稍后再处理。我假设对于delete,我只需要确保有正确的SQL语句来从数据库中删除项目。

提前感谢您的帮助。

1 个回复
SO网友:Walf

显然,正确的方法是获取通常显示表的自定义页面返回的后缀,并在呈现任何管理内容之前使用它连接到页面加载。

add_action(\'admin_menu\', function() {
    $page_hook_suffix = add_submenu_page( # or related function
        …
        function() {
            # content of table page
        }
    );
    if ($page_hook_suffix) {
        add_action("load-$page_hook_suffix", function() {
           # verify nonces, handle actions, redirect, etc.
        });
    }
});

结束