Как предотвратить удаление страницы WordPress пользователем

Некоторые плагины WordPress создают страницу или сообщение, и правильная функция плагина основывается на существовании этой страницы или сообщения. Например, плагин, который управляет списком электронной почты, может опираться на страницу отмены подписки, которую пользователь может удалить специально или случайно.

Как плагин предотвращает удаление страницы?

Ответ 1

Во-первых, когда вы создаете страницу, вы можете сохранить ее идентификатор в опции, которую вам нужно получить позже:

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');

В этих функциях вы проверяете идентификатор удаляемой страницы и сравниваете ее с идентификатором, который вы сохранили при создании страницы.

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

В функции "предотвратить мусор" вы измените статус для публикации. В функции предотвращения удаления вы заново создаете страницу.

Вот как я это сделал, и это сработало для меня. Я хотел бы видеть, как другие могли подойти к этой проблеме.