4

嗨,我正在编写一个插件,其中我通过扩展 wordpress wp_list_table 类来显示数据库中的各种条目。为了在每一行中显示一些操作链接,我以以下方式使用了此功能。

function column_name($item) {
    $actions = array(
        'edit' => sprintf('<a href="?page=%s&action=%s& hotel=%s">Edit</a>',$_REQUEST['page'],'edit',$item['id']),
        'delete' => sprintf('<a href="?page=%s&action=%s&hotel=%s">Delete</a>',$_REQUEST['page'],'delete',$item['id']),
    );
    return sprintf('%1$s %2$s', $item['Name'], $this->row_actions($actions) );
}

但是从管理页面,当我点击这些链接时,什么都没有发生,只有我搜索了每个商品的 url 更改,并且大多数示例都使用数组形式的静态数据,所以我想说的是如何通过 $_GET 使其处于活动状态[] 方法还是有其他方法可以做到这一点?

4

1 回答 1

3

回到您的设置页面,您应该为 $ GET 值添加一个 if 语句。(即来自您的 add (sub)menu_page 调用的回调。

例如

if( isset( $_GET['edit-hotel'] ) ) :
  // Show my edit hotel form
else :
  // Show my WP_List_Table
endif;

如果合适,您当然也可以在编辑表单上方显示列表 - 这只是一个示例。

请注意,WP_List_table 类被标记为 @access 私有,因此不应真正用作 API 的一部分。请参阅 WordPress 核心开发人员 Andrew Nacin 的评论

于 2013-01-03T12:30:51.077 回答