WPExperts

Запрет на удаление главной страницы в WordPress

В WordPress главная страница зачастую является ключевым элементом сайта. Удаление или случайное изменение этой страницы может привести к серьёзным проблемам с отображением контента и потерей посетителей. В этой статье мы разберём, как запретить удаление главной страницы в WordPress, используя как встроенные возможности CMS, так и плагины. Также рассмотрим практические решения с примерами кода.

Почему важно запретить удаление главной страницы WordPress

Главная страница сайта — это лицо вашего проекта. Она часто содержит важную информацию, ссылки на ключевые разделы и оптимизирована для поисковых систем. Если её удалить, сайт может перестать корректно работать, а пользователи столкнутся с ошибками 404.

Запрет на удаление главной страницы поможет:

  • Предотвратить случайные ошибки администратора.
  • Снизить риск потери SEO-позиций.
  • Обеспечить стабильность работы сайта.

Рассмотрим, как реализовать этот запрет технически.

Запрет удаления главной страницы с помощью хука WordPress

WordPress позволяет перехватывать попытки удаления постов (включая страницы) через хук before_delete_post. Используя этот хук, мы можем проверить, является ли удаляемая страница главной, и отменить удаление.

Главная страница определяется в настройках чтения — это ID страницы, выбранной в качестве статической главной.

Пример кода для запрета удаления главной страницы

function wpexperts_prevent_delete_homepage( $post_id ) {
    // Получаем ID главной страницы
    $homepage_id = get_option( 'page_on_front' );

    // Если удаляемая страница — главная, отменяем удаление
    if ( $post_id == $homepage_id ) {
        wp_die( 'Удаление главной страницы запрещено для сохранения целостности сайта.' );
    }
}
add_action( 'before_delete_post', 'wpexperts_prevent_delete_homepage' );

Этот код достаточно добавить в файл functions.php вашей темы или в отдельный плагин.

Дополнительные меры безопасности: запрет на массовое удаление

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

Запрет массового удаления главной страницы

function wpexperts_filter_bulk_actions( $actions ) {
    unset( $actions['trash'] ); // Убирает действие «Удалить» из списка массовых действий
    return $actions;
}

function wpexperts_restrict_bulk_delete_for_homepage( $query ) {
    if ( ! is_admin() || ! $query->is_main_query() ) {
        return;
    }

    $screen = get_current_screen();
    if ( $screen && 'edit-page' === $screen->id ) {
        $homepage_id = get_option( 'page_on_front' );
        if ( isset( $_REQUEST['post'] ) && is_array( $_REQUEST['post'] ) ) {
            if ( in_array( $homepage_id, $_REQUEST['post'] ) ) {
                wp_die( 'Массовое удаление главной страницы запрещено.' );
            }
        }
    }
}

add_filter( 'bulk_actions-edit-page', 'wpexperts_filter_bulk_actions' );
add_action( 'pre_get_posts', 'wpexperts_restrict_bulk_delete_for_homepage' );

Этот код убирает пункт массового удаления из списка и дополнительно проверяет попытки массового удаления через параметры запроса.

Использование плагинов для защиты главной страницы

Если вы не хотите писать код самостоятельно, можно использовать плагины безопасности и кастомизации, которые позволяют блокировать удаление или изменение важных страниц.

Рекомендуем обратить внимание на Clearfy Pro. Этот плагин содержит функции для усиления безопасности сайта, в том числе ограничения на удаление и изменение определённого контента.

Также плагин Expert Review позволяет создавать правила для контроля доступа и действий пользователей, что может помочь запретить удаление главной страницы.

Дополнительные советы по защите главной страницы

Кроме запрета удаления, стоит учитывать следующие рекомендации:

  • Регулярно делайте резервные копии сайта, чтобы можно было быстро восстановить удалённую страницу.
  • Ограничьте права пользователей в WordPress, чтобы только доверенные администраторы могли удалять страницы.
  • Используйте журнал активности, например, плагин WPRemark, чтобы отслеживать попытки удаления и изменения контента.

Вывод

Защита главной страницы WordPress от удаления — важный элемент поддержки стабильности сайта. Используя хук before_delete_post и дополнительные меры безопасности, можно эффективно предотвратить случайные или нежелательные удаления. Для удобства можно применять плагины Clearfy Pro, Expert Review и другие, которые облегчают управление правами и обеспечивают дополнительный контроль.

Если вы хотите получить готовые решения для защиты своего сайта, рекомендуем ознакомиться с ассортиментом на WPSHOP.ru.

×
до 3225₽

Продавай темы и плагины WordPress!

Лови с каждой продажи

Начать ⋙