Как отключить опцию удаления для определенной страницы в админке Wordpress? - PullRequest
0 голосов
/ 29 августа 2018

Я нашел много подобных вопросов, но ничего не соответствовало моему требованию. Вот мое требование - заблокировать определенную страницу с именем settings. Это не должно быть удалено другими. Но это должно быть в состоянии отредактировать. Есть ли способ заблокировать определенную страницу, используя ее идентификатор или имя страницы.

1 Ответ

0 голосов
/ 29 августа 2018

Создайте хук в файле функций тем, как показано ниже:

function restrict_page_deletion($post_ID){
    $user = get_current_user_id();

    $restricted_pageId = 4;

    if($post_ID == $restricted_pageId)
    {
        echo "You are not authorized to delete this page.";
        exit;
    }
}
add_action('before_delete_post', 'restrict_page_deletion', 10, 1);

Передайте идентификатор вашей страницы в переменную limited_pageId.

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

Администратор может переместить страницу в корзину, но администратор не сможет ее удалить.

Если вы хотите заблокировать администратора для функции отслеживания, вызовите ловушку для действия "wp_trash_post".

add_action('wp_trash_post', 'restrict_page_deletion', 10, 1);
...