Скрыть все страницы, кроме одной от указанного c пользователя в бэкэнде WordPress - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь скрыть все страницы, кроме одного указанного c от пользователя (ID = 14). Это то, что я получил до сих пор с помощью этого поста »https://www.johnparris.com/how-to-hide-pages-in-the-wordpress-admin/«:

function jp_exclude_pages_from_user($query) {

  if ( ! is_admin() )
    return $query;

  global $pagenow, $post_type;

  if ( !$current_user->14  && $pagenow == 'edit.php' && $post_type == 'page' )
    $query->query_vars['post__in'] = array( '10' ); // Enter your page IDs here


}
add_filter( 'parse_query', 'jp_exclude_pages_from_user' );

В результате мой сайт перестает работать.

1 Ответ

1 голос
/ 20 марта 2020

Есть проблема с вашим кодом. Вы выбираете идентификатор пользователя вне функции. В этом случае код должен быть таким, как показано ниже:

    function jp_exclude_pages_from_admin($query) {

        if ( ! is_admin() )
            return $query;

        global $pagenow, $post_type;
        $current_user_id = get_current_user_id();

        if ( $current_user_id == 'youruserid' && $pagenow == 'edit.php' && $post_type == 'page' )
            $query->query_vars['post__not_in'] = array( 'yourpageid' ); // Enter your page IDs here

    }
    add_filter( 'parse_query', 'jp_exclude_pages_from_admin' );

В вышеприведенном разделе вы забыли указать $ current_user_id, поэтому он был приостановлен. Надеюсь, этот код будет работать. Дайте мне знать, если это работает или нет. Я проверил это, и он отлично работает на моем конце

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