удалить добавить новую страницу без плагинов - PullRequest
0 голосов
/ 30 октября 2019

Я хочу удалить пользователям возможность добавлять новые страницы в WordPress. но подоконник может их редактировать.

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

Я нашел некоторую помощь, но только для части проблемы

например, этот код удаляет только сторонних разработчиков, но не удаляет кнопку добавления новой в wp-admin / edit.php? Post_type= страница страницы или в верхнем меню

function disable_new_pages() {
    // Hide sidebar link
    global $submenu;
    unset($submenu['edit.php?post_type=page'][10]);

    // Hide link on listing page
    if (isset($_GET['post_type']) && $_GET['post_type'] == 'page') {
        echo '<style type="text/css">
        #favorite-actions, .add-new-h2, .tablenav { display:none; }
        </style>';
     }
    }
    add_action('admin_menu', 'disable_new_pages');

как я могу удалить это полностью

Ответы [ 2 ]

0 голосов
/ 31 октября 2019

После долгих поисков я нашел решение, которое мне помогло. И я перенаправляю нежелательных пользователей со страницы. Проще всего (на мой взгляд)

   function my_restrict_access() {
        global $pagenow;

        if( current_user_can('client') && $pagenow == 'post-new.php' && ! current_user_can( 'publish_posts' ) )
              wp_redirect( admin_url() .'/edit.php?post_type=page' );
    }
    add_action( 'admin_init', 'my_restrict_access', 0 );
0 голосов
/ 30 октября 2019

Есть много способов сделать это, но давайте сделаем это самым простым / лучшим из них:

перейдите к wp-includes / post.php и найдите 'capability_type' => 'page',

и добавьте

   'capabilities' => array(
        'create_posts' => false,
    ),

Это будет выглядеть так:

'capability_type'       => 'page',
            'capabilities' => array(
                'create_posts' => false,
            ),
            'map_meta_cap' => true,
            'menu_position' => 20,

'map_meta_cap' => true, // Если для этого параметра установлено значение true, пользователи по-прежнему смогутредактировать и удалять сообщения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...