快速编辑功能是 WordPress 文章列表中的一个小功能,可以让我们快速编辑文章的一些属性,比如标题、别名、分类、标签等等,对于 CMS 系统来说,这个功能非常实用。Custom Article Types也继承了这个功能,对于有些文章类型来说,这个功能是没用的,甚至还会为用户带来一些困扰。比如我们新建了一个名为 “Message” 的文章类型,来接收用户在前台提交的询盘信息,我们希望客服只能查看、不能编辑这些信息,所以我们必须移除快速编辑功能。通过下面的代码可以实现这个需求。
移除某文章类型的快速编辑功能
add_filter('post_row_actions', function ($actions = [], $post = null)
{
// 如果不是我们需要的文章类型,直接返回
if (!in_array(get_post_type($post), ['message'])) {
return $actions;
}
// 判断文章类型并移除快速编辑链接
if (isset($actions[ 'inline hide-if-no-js' ])) {
unset($actions[ 'inline hide-if-no-js' ]);
}
// 返回删除了快速编辑操作后的链接数组
return $actions;
}, 10, 2);
WordPress 默认文章列表操作功能
从上面的代码我们可以看出,这个功能其实就是通过 post_row_actions 这个 Filter 修改了 $actions
这个数组实现的,那么 $actions
这个数组中都包含哪些元素,我们可以禁用的操作都有哪些呢?通过查看 WordPress 的源码,我们找到了下面几个,根据需要用下面数据中的元素替换上面代码中相应的操作名称,即可禁用对用的功能。
[
'view',
'edit',
'inline hide-if-no-js',
'delete',
'trash',
'untrash',
]
除了这些,一些插件会添加自定义操作到文章列表中,我们可以搜索 post_row_actions
查看插件添加的自定义操作功能,根据需要进行处理。