Как отключить доступ администратора/редактора к публикациям конкретного пользователя

Вопрос или проблема

Надеюсь, кто-то сможет предложить мне фрагмент кода, который я могу использовать, чтобы заблокировать других администраторов или редакторов от редактирования МОИХ постов….. Я использую только текстовый редактор, но когда другие пользователи заходят в мои записи с помощью визуального редактора, это нарушает часть HTML и кода, которые я добавил, и мне приходится тратить много времени в текстовом редакторе на исправления.

Мне не важно, если они редактируют записи других пользователей, я просто не хочу, чтобы они трогали мои, потому что это вызывает у меня слишком много работы. И да, я пытался – и неудачно – научить их просто не заходить…. иногда они даже не смотрят, кто автор, прежде чем редактировать запись, и не понимают, что испортили ее, пока я не замечу.

Вы можете посетить – Как назначить определенным пользователям возможность редактировать определенные страницы / записи / типы записей

ИЛИ

Прежде всего: предоставьте полный доступ к типу записей проектов (Пример).

В профиле пользователя добавьте разрешенные идентификаторы записей.

Затем используйте следующий фильтр, чтобы ограничить доступ, если идентификатор записи не разрешен.

function allow_user_to_edit_cpt_filter( $capauser, $capask, $param){

    global $wpdb;

    $allowed_posts_id_for_current_user = array( '29', '30' ); // вам нужно получить эти идентификаторы самостоятельно
    $post = get_post( $param[2] );

    // Если текущая запись не разрешена, удалите возможности редактирования и удаления
    if( !in_array( $post->ID, $allowed_post_type_ids ) ){
        if( ( $param[0] == "edit_projects") || ( $param[0] == "delete_projects" ) ) { // Измените на свои возможности
            foreach( (array) $capask as $capasuppr) {
               if ( array_key_exists($capasuppr, $capauser) ) {
                  $capauser[$capasuppr] = 0;
               }
            }
        }
    }

    return $capauser;
}
add_filter('user_has_cap', 'allow_user_to_edit_cpt_filter', 100, 3 );

Скопируйте ответ с Как назначить определенным пользователям возможность редактировать определенные страницы / записи / типы записей

Ответ или решение

Чтобы отключить доступ администраторам или редакторам к редактированию ваших постов в WordPress, вы можете использовать код, который ограничивает определенным пользователям возможность редактировать посты, не принадлежащие им. Это достигается путем изменения прав пользователей с помощью фильтра user_has_cap. Вот полное решение:

  1. Настройте массив разрешенных постов: Создайте массив, который будет содержать идентификаторы постов, которые данный пользователь может редактировать.

  2. Используйте фильтр для ограничения доступа: Вставьте следующий код в файл functions.php вашей темы или в плагин для пользовательских функций:

function allow_user_to_edit_specific_posts( $caps, $cap, $args ) {
    // Список ID постов, которые пользователь может редактировать
    $allowed_posts_ids = array( '29', '30' ); // Замените '29', '30' на ваши значения ID постов
    $post_id = isset( $args[0] ) ? (int) $args[0] : 0;

    // Проверяем, является ли текущий пост один из разрешенных
    if ( !in_array( $post_id, $allowed_posts_ids ) ) {
        // Убираем права на редактирование и удаление
        if ( in_array( $cap[0], array( 'edit_post', 'delete_post' ) ) ) { // Замените 'edit_post' и 'delete_post' на ваши значения возможностей при необходимости
            $caps[$cap[0]] = false; // Убираем право
        }
    }

    return $caps;
}
add_filter( 'user_has_cap', 'allow_user_to_edit_specific_posts', 10, 3 );
  1. Проверьте права пользователей: Не забудьте проверить, какие права имеют другие пользователи (администраторы и редакторы), чтобы убедиться, что изменения работают корректно.

  2. Тестирование: После того как вы добавили код, протестируйте, чтобы удостовериться, что пользователи не могут редактировать ваши посты, в то время как у них по-прежнему есть доступ к редактированию других постов.

Этот подход позволит вам защитить ваши посты от редактирования другими администраторами и редакторами, что предотвратит возможные повреждения ваших HTML-кодов при использовании визуального редактора.

Оцените материал
Добавить комментарий

Капча загружается...