Установить категорию по умолчанию на имя пользователя

Вопрос или проблема

Я установил плагин под названием “Симбиоз”, который автоматически создает категории, копируя имя пользователя при его регистрации.

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

Я хочу установить категорию по умолчанию в WP на имя автора, чтобы, когда кто-то создает пост, он автоматически публиковался под его именем. (Мои пользователи не имеют доступа к стандартным панелям WP)

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

Это возможно через плагин или программно где-то еще?

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

<?php global $current_user; if ( isset($current_user) ) {echo $current_user->user_login;}?>

Категория по умолчанию хранится в таблице опций под именем параметра default_category, поэтому вы можете сделать что-то вроде этого:

add_action('admin_init','set_user_default_cat_wpa89057');
function set_user_default_cat_wpa89057(){
    global $current_user; 
    if ( isset($current_user) ) {
        update_option( 'default_category',  $current_user->user_login);
    }
}

function setcategory_2_username($id){
   global $current_user;  
   $category_id = get_cat_ID( $current_user->user_login );
   wp_set_post_categories( $post_id, array($category_id) );
}
add_action('save_post', 'setcategory_2_username');

Ответ или решение

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

Шаг 1: Установка Плагина

Убедитесь, что плагин "Symbiosis", который создает категории на основе имени пользователя, установлен и активирован. Все категории пользователей должны быть созданы автоматически при регистрации.

Шаг 2: Написание Функции

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

Пример Кода

Поместите следующий код в файл functions.php вашей темы или в другом месте, где у вас есть возможность добавлять пользовательский код:

function set_category_to_username($post_id) {
    // Запрещаем автосохранение
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;

    // Глобальная переменная пользователя
    global $current_user;

    // Проверяем, установлен ли текущий пользователь
    if (isset($current_user)) {
        // Получаем ID категории на основе имени пользователя
        $category_id = get_cat_ID($current_user->user_login);

        // Убедимся, что категории с таким ID существуют
        if ($category_id) {
            // Устанавливаем категорию для поста
            wp_set_post_categories($post_id, array($category_id));
        }
    }
}

// Привязываем функцию к событию сохранения поста
add_action('save_post', 'set_category_to_username');

Шаг 3: Проверка Кода

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

Важные Замечания

  1. Безопасность: Убедитесь, что код безопасен и не допускает уязвимостей. Например, вы можете добавить дополнительные проверки, если это необходимо.
  2. Совместимость: Параметры и функции могут изменяться в зависимости от используемой версии WordPress. Убедитесь, что вы тестируете код на актуальной версии.
  3. Бэкап: Всегда делайте резервные копии перед внесением изменений в файлы кода.

Заключение

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

Оцените материал
Добавить комментарий

Капча загружается...