Ответы в темах

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • При включённом ЧПУ слаг будет равен логину юзера.
    Что бы сделать что Вы хотите — нужно изменить правила формирования ЧПУ. Вряд ли это хорошая идея.

    Как изменить правила формирования ссылок? У меня подключена авторизация через социальные сети, поэтому многие пользователи имеют логины вида «vkontakteuser», «facebookuser» и т.п. Вариант с логином не подходит. Мне нужно, чтобы url пользователя имел вид «http://site.ru/author/{id}» или просто «http://site.ru/{id}». ЧПУ пока отключено.

    Тогда у меня следующие вопросы:

    1. Какой минимальной информации из БД Вордпрессу вообще достаточно для создания нового пользователя, если базу импортируют? Особенно имеется ввиду таблица wp_usermeta. На основе наблюдения, какие строки в БД создаёт ВП при регистрации нового пользователя, были импортированы таблицы в следующем виде:

    wp_users:
    ID, user_login, user_pass, user_nicename, user_email, user_url (оставляли пустым), user_registered, user_activation_key (пустое), user_status(0), display_name

    wp_usermeta (буду приводить значения столбцов meta_key и meta_value на каждого пользователя):
    description —
    rich_editing — true
    comment_shortcuts — false
    show_admin_bar_front — true
    locale —
    wp_capabilities — a:1:{s:6:»author»;b:1;}
    wp_user_level
    default_password_nag
    nickname
    admin_color — fresh
    use_ssl

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

    2. У меня в теме не было шаблона страницы author.php, поэтому спасибо, что подсказали. И вопрос такой: вот у меня уже есть 75 000 пользователей, мне достаточно добавить к себе шаблон author.php и в нём указать: какие данные о пользователе я хочу там выводить? ВП создаст эти страницы автоматически? Они будут так же отображаться в разделе «страницы»? И где я укажу, например, что у каждого юзера должен быть url вида «/id123»?

    Хостинг — timeweb. Создавались именно страницы (pages), а не посты. Настройки чтения — это пункт меню «Настройки»->»Чтение» в админке. Этот раздел теперь полностью пуст.

    За незнанием как грамотно создать 75 000 страниц, было сделано следующее:

    в functions.php написал такой код:

    // создание страниц для 75 000 пользователей
    add_action( 'personal_options', 'ozh_personal_options2'); 
    
    function ozh_personal_options2() {
    
    if(current_user_can('administrator')) {
    
    $current = get_current_user_id();
    if ($current == 1) { // профиль админа
    
    $all_users = get_users('role=author&number=3000&offset=0&orderby=ID');
    
    foreach ($all_users as $user) {
    
    $new_page = array(
    'post_type' => 'page',
    'post_title' => id . $user->ID,
    'post_content' => '',
    'post_status' => 'publish',
    );
    
    $new_page_template = 'page-users.php';
    
    $new_page_id = wp_insert_post($new_page);
    
    if(!empty($new_page_template)) {
    update_post_meta($new_page_id, '_wp_page_template', $new_page_template);
    }
    }
    }
    } 
    }

    Повесил это на хук персональные настройки, не ругайте сильно, без понятия был как решить задачу. Меняя значение offset (c 0, потом 3000, потом 6000…) создавал по 3000 страниц, пока не создал необходимое число.

    • Ответ изменён 6 лет, 10 месяцев назад пользователем SeVlad. Причина: Оформляйте, пож, код как следует
Просмотр 3 ответов — с 1 по 3 (всего 3)