Intereting Posts
Добавление пользовательского кода на сайт WordPress Добавить параметр URL во все внутренние ссылки, используя определенную тему set_post_thumbnail_size не обрезает выделенные изображения Как я могу использовать этот javascript правильно с wordpress? CSS не обновляется в браузере, когда я его меняю HTTP-запрос за кулисами? Функция фильтрации изотопов Одностраничный сайт (WordPress), включая сообщения Посты загрузки Ajax через категорию можно ли изменить значение версии плагина wordpress, чтобы избежать предупреждения об обновлении? Как спам-фильтр настраиваемого типа контента с помощью плагина Akismet? Как сохранить массив с одним метакеем в postmeta? Невозможно создать промежуточную площадку для отображения так же, как в реальном времени. Полностью тупик Как заставить внутренние привязные ссылки работать с постоянными ссылками WordPress? Как я могу получить все должности, связанные с определенным термином таксономии?

Создание клиентской страницы

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

  1. клиент может входить из любого места в качестве client настраиваемой роли
  2. при входе в систему они переходят на страницу /clientusername – создаются администратором
  3. страница содержит только материал, размещенный там администратором (т. е. для редактирования страницы нет функции)
  4. если кто-либо другой, кроме этого клиента, приземляется на эту страницу (набрав URL-адрес), они перенаправляются на главную страницу

 function my_login_redirect( $url, $request, $user ){ if( $user && is_object( $user ) && is_a( $user, 'WP_User' ) ) { if( $user->has_cap( 'client' ) ) { $client = $user->user_login; $url = home_url( $client, 'relative'); } } return $url; } add_filter('login_redirect', 'my_login_redirect', 10, 3 ); 

Я понимаю, что еще многое предстоит сделать, но я оставлю это здесь для обсуждения.

Solutions Collecting From Web of "Создание клиентской страницы"

Для роли клиента используйте это;

  // Add a client user role $result = add_role( 'client', __( 'Client' ), array( 'read' => true, // true allows this capability 'edit_posts' => false, // Allows user to edit their own posts 'edit_pages' => false, // Allows user to edit pages 'edit_others_posts' => false, // Allows user to edit others posts not just their own 'create_posts' => false, // Allows user to create new posts 'manage_categories' => false, // Allows user to manage post categories 'publish_posts' => false, // Allows the user to publish, otherwise posts stays in draft mode 'edit_themes' => false, // false denies this capability. User can't edit your theme 'install_plugins' => false, // User cant add new plugins 'update_plugin' => false, // User can't update any plugins 'update_core' => false // user cant perform core updates ) ); 

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

Один шаблон страницы страницы клиента помещает это перед get_header() :

 $current_user = wp_get_current_user(); $client = $current_user->user_login; $slug = get_post_field( 'post_name', get_post() ); $client = strtolower($client); if ($client != $slug) { header("Location: /index.php"); } 

и, очевидно, нам нужно позволить администраторам видеть страницу;

 if (!current_user_can('administrator')) { $current_user = wp_get_current_user(); $client = $current_user->user_login; $slug = get_post_field( 'post_name', get_post() ); $client = strtolower($client); if ($client != $slug) { header("Location: /index.php"); } }