Есть ли способ (плагин?), Чтобы ограничить пользователя, возможность редактировать только одну страницу?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/1736

Вопрос

Мы используем WordPress, как CMS и очень хотели бы позволить пользователям иметь «домашнюю страницу». В идеале им нельзя было бы разбить весь сайт.

Есть ли простой способ ограничить права пользователей на редактирование на одну страницу?

Я сейчас использую Участники плагин Чтобы сделать другие материалы, основанные на разрешениях, было бы здорово, если бы решение могло либо аккуратно увеличить это, либо полностью его заменить.

Бонусные баллы для автоматического создания домашней страницы, когда создается новый пользователь.


Обновления: я должен уточнить, что эти страницы должны быть ограничены определенной областью сайта (т.е. все дети одной и той же страницы). Кроме того, после разговора с некоторыми пользователями, кажется, что они найдут полезным для создания подразделений на своей домашней странице.

Это было полезно?

Решение 2

Извините, что сделал это, но я наткнулся на ответ На форумах WordPress.

Оказывается, что Роль Скор Это действительно хорошо. Автор этого поста на форуме сказал лучше всего:

Чтобы позволить пользователю редактировать одну конкретную страницу, но не что -либо еще:

  1. Дать им роль подписчика WordPress
  2. Управление> страницами> Редактировать их страницу
  3. Расширить вкладку «Редакторы» под "Advanced Options"
  4. Проверьте неволочный флажок слева от имени вашего пользователя (если будут созданы дочерние страницы, также проверьте флажок с приготовлением {[]}, который назначает роль для всех текущих или будущих дочерних страниц)
  5. Сохраните страницу

Другие советы

Базовая установка WordPress, вероятно, не сделает то, что вы хотите. Вы можете настроить многозаконный экземпляр и позволить пользователям иметь свой собственный сайт «суб» или использовать что-то вроде Buddypress или Mingle, которое имеет функцию профиля пользователя.

Я столкнулся с той же ситуацией, что и вы, и то, что я сделал, это создал пользовательский тип поста с именем «Домашняя страница», а также создал плагин «Пределы создания постов Bainternet», чтобы ограничить создание каждого типа поста на одного пользователя. Попробуйте http://wordpress.org/extend/plugins/bainternet-posts-reation-limits/

Плагин Manager Access Access сделает это для вас, все остальные подходы слишком сложны. UAM просто прост, настраивает группы и назначает группу на ваши подстраги, готовые.

Я бы использовал Менеджер возможностей Или ознакомьтесь с ролями и возможностями в Codex, чтобы сделать это.

Проявление подразумевает, что вы отключили редактирование «нормальных» типов постов (пост, страница).

Это нет Как бы вы ни поверили. А ключ это Имя входа в систему пользователя. Анкет То же самое можно сделать с таксономиями или даже условиями.

Смотрите следующее (есть пример для запроса):

// 1st: Add a post type for that user with it's 
//   user login & according capabilities 
function create_user_home() {
    global $current_user;
    get_currentuserinfo();

    register_post_type(
        'home_of_'.$current_user->user_login,
        array(
            'public' => true,
            'capability_type' => $current_user->user_login,
            'capabilities' => array(
                'publish_posts' => 'publish_'.$current_user->user_login,
                'edit_posts' => 'edit_'.$current_user->user_login,
                'edit_others_posts' => 'edit_'.$current_user->user_login,
                'delete_posts' => 'delete_'.$current_user->user_login,
                'delete_others_posts' => 'delete_others_'.$current_user->user_login,
                'read_private_posts' => 'read_private_'.$current_user->user_login,
                'edit_post' => 'edit_'.$current_user->user_login,
                'delete_post' => 'delete_'.$current_user->user_login,
                'read_post' => 'read_'.$current_user->user_login,
            ),
        )
    );
}
add_action( 'init', 'create_user_home' );

// A query could be done like this:
wp_reset_query(); // to be sure

global $wp_query, $current_user;
get_currentuserinfo();

$query_user_home = new WP_Query( array(
    ,'order'        => 'ASC'
    ,'post_type'    => 'home_of_'.$current_user->user_login
    ,'post_status'  => 'publish'
) );

if ( $query_user_home->have_posts() ) :
    while ( $query_user_home->have_posts() ) : $query_user_home->the_post();
        // check for password
        if ( post_password_required() ) :
            the_content();
        elseif ( !current_user_can('') ) :
            // display some decent message here
            return;
        else :

            // here goes your content

        endif;
    endwhile;

else : // else; no posts
    printf(__( 'Nothing from Mr./Mrs. %1$s so far.', TEXTDOMAIN ), $current_user->user_firstname.' '.$current_user->user_lastname);
endif; // endif; have_posts();

wp_rewind_posts(); // for a sec. query

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

function create_user_tax() {
    if ( current_user_can("$current_user->user_login") ) :
        global $current_user;
        get_currentuserinfo();

        $singular = $current_user->user_login;
        $plural = $singular.'\'s';

        // labels
        $labels = array (
                 'name'         => $plural
                ,'singular_name'=> $singular
            );

        // args
        $args = array (
             'public'               => true
            ,'show_in_nav_menus'    => true
            ,'show_ui'              => true
            ,'query_var'            => true
            ,'labels'               => $labels
            ,'capabilities' => array(
                'manage_'.$current_user->user_login
            )
        );

        // Register
        register_taxonomy ( 
             $current_user->user_login
            ,array ( 'post', 'page' )
            ,$args
        ); 
        // Add to post type
        // you can even add your current user post type here
        register_taxonomy_for_object_type (
             $current_user->user_login
             ,array ( 'post', 'page', 'home_of_'.$current_user->user_login ) 
        );
    endif;
}
add_action( 'init', 'create_user_tax' );

Размещение проверки возможностей (current_user_can) может быть где -то другим. Зависит от всех ваших конкретных потребностей. Просто чтобы убедиться в этом: это примеры, которые помогут вам на пути к вырубке. Надеюсь что помогает :)

Я сделал что -то подобное с «участниками», пользовательским типом поста и ручным назначением прав автора для конкретного участника, поскольку это веб -сайт небольшой группы, но я помню, как читал в некотором потоке поддержки прессы, что это возможно Чтобы зацепить процесс регистрации, поэтому я полагаю, что можно было бы автоматически создать страницу/пользовательский тип поста на одного пользователя при регистрации и назначить эту конкретную страницу новому созданному члену в качестве домашней страницы. Я также добавил передний редактор Scribu и заблокировал бэкэнд для членов, которые не являются администраторами. Вы, вероятно, также можете добавить перенаправление при регистрации, чтобы новые участники были перенаправлены на их страницу (что, я полагаю, мог иметь некоторый контент по умолчанию).

Я посмотрю, смогу ли я найти эту ветку поддержки Buddypress.

Приложение - в селекторе автора в поле «Редактировать пост» есть ошибка. В настоящее время он не использует стандартную систему разрешений, которая может усложнить решение участников (хотя, вероятно, будет работать, если автор назначен на создание страницы). В Trac есть патч, но я не думаю, что он был применен к ядру.

Это возможно с помощью плагина S2 -мема, бесплатной версии достаточно. Я создал клиентскую область, где у каждого клиента есть URL -адрес, здесь есть видео -учебник: http://www.primothemes.com/forums/viewtopic.php?f=4&t=586&start=0&hilit=client+area

Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top