4

一些 WordPress 插件创建页面或帖子,插件的正常功能依赖于该页面或帖子的存在。例如,管理电子邮件列表的插件可能依赖于取消订阅页面,用户可能会故意或意外删除该页面。

插件如何防止其页面被删除?

4

2 回答 2

7

首先,当您创建页面时,您可以将其 ID 存储在稍后需要获取的选项中:

add_option('undeleteable_page_id', $the_page_id, '', 'no'); // 'no' so this option does not load on every page

然后,您使用函数连接到删除操作以防止删除:

add_action('deleted_post', 'prevent_undeleteable_page_deletion');
add_action('trashed_post', 'prevent_undeleteable_page_trash');

在这些函数中,您检查被删除页面的 id 并将其与您在创建页面时存储的 id 进行比较。

if($id == get_option('undeleteable_page_id')) ...

在“防止垃圾”功能中,您将状态更改回发布。在防止删除功能中,您重新创建页面。

我就是这样做的,它对我有用。我很想看看其他人如何解决这个问题。

于 2012-09-29T04:59:15.710 回答
0

Stephen Jones 描述了另一种有趣的方法,即简单地将页面隐藏在 wp-admen 页面列表中,这里: hide-certain-pages-posts-on-wp-admin-show-custom-filter

于 2017-08-05T16:46:20.117 回答