Как добавить владельца (автора) постов в WordPress и управлять им программно

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

Основы работы с автором поста в WordPress

Каждый пост в WordPress хранит ID автора в поле post_author таблицы базы данных wp_posts. При создании записи автором становится текущий пользователь. Изменить автора можно через административную панель, если включена соответствующая опция, или программно.

Для работы с автором в коде WordPress предоставляет удобные функции:

  • get_post_field('post_author', $post_id) — получить ID автора поста;
  • wp_update_post(['ID' => $post_id, 'post_author' => $new_author_id]) — обновить автора поста;
  • get_userdata($user_id) — получить данные пользователя по ID.

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

Как добавить выбор автора в кастомных формах и шорткодах

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

function wpfaq_render_author_select($selected_author = 0) {
    $users = get_users(['who' => 'authors']);
    echo '<select name="post_author">';
    foreach ($users as $user) {
        $selected = ($user->ID == $selected_author) ? ' selected' : '';
        echo "<option value=\"{$user->ID}\" $selected>{$user->display_name}</option>";
    }
    echo '</select>';
}

function wpfaq_save_post_with_author() {
    if (!empty($_POST['post_author']) && current_user_can('edit_posts')) {
        $new_author = intval($_POST['post_author']);
        $post_id = wpfaq_create_post_somehow(); // Ваша логика создания поста
        if ($post_id) {
            wp_update_post(['ID' => $post_id, 'post_author' => $new_author]);
        }
    }
}

Такой подход позволяет гибко управлять авторством при создании контента с пользовательских форм.

Массовое изменение автора постов через плагин и код

Иногда требуется массово изменить автора множества постов, например, при смене редактора или объединении учетных записей. Плагины для этого есть, например, Author Change. Но можно сделать и быстро через код:

function wpfaq_bulk_change_post_author($old_author_id, $new_author_id) {
    global $wpdb;
    $wpdb->query($wpdb->prepare(
        "UPDATE {$wpdb->posts} SET post_author = %d WHERE post_author = %d",
        $new_author_id,
        $old_author_id
    ));
}

Этот код напрямую обновит всех авторов с $old_author_id на $new_author_id без лишних проверок. Используйте с осторожностью и обязательно сделайте резервную копию базы данных.

Расширение функционала: добавление роли "Автор" с ограниченными правами

Для сайтов с множеством пользователей и разными уровнями доступа полезно создавать кастомные роли. Например, роль "Автор" может иметь права создавать и редактировать только свои посты, но не менять авторство. Для создания роли используйте функцию add_role:

function wpfaq_add_custom_author_role() {
    add_role('custom_author', 'Автор с ограничениями', [
        'read' => true,
        'edit_posts' => true,
        'edit_others_posts' => false,
        'publish_posts' => true,
        'delete_posts' => true
    ]);
}
add_action('init', 'wpfaq_add_custom_author_role');

Это позволит разграничить права и предотвратить неправильное назначение авторов.

Использование плагина Clearfy для управления авторами и оптимизации

Плагин Clearfy Pro от WPSHOP содержит множество функций для оптимизации WordPress, в том числе и возможности управлять ролями и ограничивать права пользователей. Он поможет упростить настройку прав авторов без глубоких знаний кода.

Выводы и рекомендации

Управление владельцем (автором) постов — важный аспект, особенно для крупных сайтов с несколькими редакторами. Используйте встроенные функции WordPress для изменения автора программно, добавляйте выбор автора в пользовательские формы и применяйте массовое обновление через запросы к базе для быстрого изменения. Для удобства и безопасности применяйте проверенные плагины, такие как Author Change и Clearfy Pro.

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

WooCommerce: как автоматически удалять товары без склада из каталога
05.06.2026
WordPress: как создать свой плагин с нуля
07.11.2025
WooCommerce: как автоматически удалять товары без склада из каталога
16.06.2026
Как отключить регистрацию по бесплатным email в WordPress
25.03.2026
WooCommerce: как использовать хуки для автоматизации изменений статуса заказа
29.05.2026