一些 WordPress 插件创建页面或帖子,插件的正常功能依赖于该页面或帖子的存在。例如,管理电子邮件列表的插件可能依赖于取消订阅页面,用户可能会故意或意外删除该页面。
插件如何防止其页面被删除?
一些 WordPress 插件创建页面或帖子,插件的正常功能依赖于该页面或帖子的存在。例如,管理电子邮件列表的插件可能依赖于取消订阅页面,用户可能会故意或意外删除该页面。
插件如何防止其页面被删除?
首先,当您创建页面时,您可以将其 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')) ...
在“防止垃圾”功能中,您将状态更改回发布。在防止删除功能中,您重新创建页面。
我就是这样做的,它对我有用。我很想看看其他人如何解决这个问题。
Stephen Jones 描述了另一种有趣的方法,即简单地将页面隐藏在 wp-admen 页面列表中,这里: hide-certain-pages-posts-on-wp-admin-show-custom-filter