Ответ 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')) ...
В функции "предотвратить мусор" вы измените статус для публикации. В функции предотвращения удаления вы заново создаете страницу.
Вот как я это сделал, и это сработало для меня. Я хотел бы видеть, как другие могли подойти к этой проблеме.