在现有WP_LIST_TABLE中添加和删除行操作

时间:2021-01-27 作者:Greeso

我想修改现有WP\\U List\\U表的行操作。例如,在后端的用户部分,我想删除;“编辑”;每个用户的选项。

我还想添加新的操作,例如;书籍“;,这将列出该用户阅读的书籍(这与另一个插件一起使用)。

我感觉这是某种过滤器,但在文档中找不到任何东西。

请注意,我没有创建新表。这是一个现有的WordPress表(例如,用户)。

我该怎么做?

谢谢

1 个回复
最合适的回答,由SO网友:Sally CJ 整理而成

对于Users list table (在wp admin/users.php中),您可以使用user_row_actions hook 像这样:

add_filter( \'user_row_actions\', \'my_user_row_actions\', 10, 2 );
function my_user_row_actions( $actions, $user_object ) {
    // Remove the Edit action.
    unset( $actions[\'edit\'] );

    // Add your custom action.
    $actions[\'my_action\'] = \'<a href="<action URL>">Action</a>\';

    return $actions;
}
其他WordPress列表表扩展了WP_List_Table class 还可以使用相同的命名约定触发类似的钩子,即。<text>_row_actions, 以下是截至撰写时可用的其他挂钩列表:

Note: 这些挂钩大多只有两个参数-$actions (一个动作链接数组)和一个表示帖子、术语、用户或评论的对象,但media_row_actions 具有第三个参数,名为$detached (详见文档)。

  • page_row_actions — 火灾发生在Pages list table (page 岗位类型);第二个参数:$post (a)WP_Post 实例)

  • post_row_actions — 火灾发生在Posts list table (post 和自定义岗位类型);第二个参数:$post (a)WP_Post 实例)

    请注意,这个钩子和上面的钩子是在同一个列表中激发的class哪个是WP_Posts_List_Table.

  • media_row_actions — 火灾发生在Media list table; 第二个参数:$post (a)WP_Post 实例)

  • comment_row_actions — 火灾发生在Comments list table (它也用于“最近的评论”面板小部件);第二个参数:$comment (a)WP_Comment 实例)

  • ms_user_row_actions — 火灾发生在Network (or Multisite) Admin Users list table; 第二个参数:$user (a)WP_User 实例)

  • <taxonomy>_row_actions — 火灾发生在Terms list table (对于标签(post_tag), 类别(category) 和自定义分类法);第二个参数:$tag (a)WP_Term 实例)

  • tag_row_actions — 与上面相同,即对于任何分类法,但是如果您想针对特定的分类法,可能需要使用上面的挂钩

相关推荐

外人访问wp-admin有合法的理由吗?

我有一个非wordpress的网站,我注意到我收到了很多关于/wp管理员请求的404错误我的直觉是将与任何;wp管理;查询,因为它可能是有人试图做一些粗俗的事情。但这种质疑是否有任何可能的正当理由?也许是一个搜索引擎试图确定我是否在运行wordpress?(注意:我理解在wordpress开发站点上询问非wordpress站点的问题的悖论,但我的问题直接与wordpress功能相关,因此我希望您能找到相关的问题。)