Я нашел много вопросов, подобных этому, но ничего не соответствовало моему требованию. Вот мое требование — заблокировать определенную страницу с именем settings. Это не должно быть удалено другими. Но это должно быть в состоянии отредактировать. Есть ли способ заблокировать определенную страницу, используя ее идентификатор страницы или имя.
Создайте хук в файле функций тем, как показано ниже:
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);
Других решений пока нет …