scott
  • 0
Гуру

Возможность пользователя создать страницу/новую страницу

  • 0

Сегодня я впервые работаю с API ролей и возможностей и использую отличный плагин Members. Поработав какое-то время, я заметил, что возможность «редактировать страницы» делает две вещи:

  1. Разрешить пользователю создать новую страницу
  2. Разрешить пользователю редактировать существующие страницы

Я пытаюсь разделить эту способность на две части. Я хочу, чтобы мой пользователь:

  1. Невозможно создать новые страницы
  2. Разрешить пользователю редактировать существующие страницы

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

Любые мысли будут оценены.

Share
  1. Да, это действительно проблема. Планируется специальная возможность create_posts:

    http://core.trac.wordpress.org/ticket/16714

    • 0
  2. Привет, я некоторое время изучал это, придумал следующий хак. В wp-admin/new_post.php добавьте следующее после строки wp_die:

    wp_die( __('Invalid post type') );
    

    if ( !current_user_can( 'manage_options' ) and $post_type == 'page') {
        echo "To create new pages please ask site admin";
        exit;
    } //if user is not admin, a warning is issued and script terminated
    

    затем в wp-admin/menu добавьте условие для отображения подменю добавления страницы в admin. Строка обычно присутствует, но не включается в оператор if.

    if ( current_user_can( 'manage_options' )) { //if user is admin, show submenu for creating new pages, else no luck
       $submenu['edit.php?post_type=page'][10] = array( _x('Add New', 'page'), get_post_type_object( 'page' )->cap->create_posts, 'post-new.php?post_type=page' );
    }
    

    Мне все еще нужно выяснить, как удалить кнопку «Добавить новую» на страницах редактирования, однако пользователи с правами на публикацию теперь могут редактировать существующие страницы, но не могут создавать новые страницы. Если они нажимают кнопку новой страницы, они получают предупреждение и не могут двигаться дальше. Посты не затрагиваются. Тот же самый код можно легко применить для предотвращения создания новых сообщений с небольшим редактированием.

    Надеюсь, это поможет

    • 0

Оставить ответ

You must login to add an answer.