wpwebsite.ru wordpress WPWebSite

Как добавить владельца записи в WordPress: практическое руководство

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

Почему важно управлять владельцем записи в WordPress

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

Добавление и кастомизация владельца записи позволяют:

  • Отображать подробную информацию об авторе в шаблонах;
  • Создавать фильтры по авторам для удобства навигации;
  • Расширять функционал с помощью пользовательских полей и мета-данных;
  • Улучшают SEO и взаимодействие с аудиторией.

Отображение автора записи в шаблоне WordPress: базовый пример

Чтобы вывести имя автора в шаблоне записи, используйте функцию the_author() или get_the_author(). Например, в файле single.php:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
  <h1><?php the_title(); ?></h1>
  <p>Автор: <?php the_author(); ?></p>
  <div><?php the_content(); ?></div>
<?php endwhile; endif; ?>

Этот способ подходит для большинства случаев, но если нужно более гибко контролировать вывод, лучше использовать функции WordPress API.

Создание кастомного поля для владельца записи и его вывод

Иногда нужно добавить дополнительную информацию об авторе или владельце записи, отличающуюся от стандартного пользователя WordPress. Для этого можно использовать кастомные поля (custom fields).

Чтобы добавить кастомное поле вручную:

  1. При редактировании записи включите отображение мета-бокса "Произвольные поля" в настройках экрана.
  2. Добавьте новое поле, например, wpwebsite_owner, и введите значение — имя владельца.

Для вывода значения этого поля в шаблоне используйте:

<?php
echo 'Владелец записи: ' . esc_html(get_post_meta(get_the_ID(), 'wpwebsite_owner', true));
?>

Этот способ удобен, если владелец записи не совпадает с пользователем WordPress или нужно хранить дополнительную информацию.

Автоматическое сохранение владельца записи при создании

Чтобы автоматически проставлять владельца записи при создании, можно использовать хук save_post. Пример функции для wpwebsite.ru:

function wpwebsite_save_owner_meta($post_id) {
  if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
  if (!current_user_can('edit_post', $post_id)) return;
  if (isset($_POST['wpwebsite_owner'])) {
    update_post_meta($post_id, 'wpwebsite_owner', sanitize_text_field($_POST['wpwebsite_owner']));
  }
}
add_action('save_post', 'wpwebsite_save_owner_meta');

Чтобы это работало, нужно добавить поле ввода на страницу редактирования записи. Добавим мета-бокс:

function wpwebsite_add_owner_meta_box() {
  add_meta_box('wpwebsite_owner_box', 'Владелец записи', 'wpwebsite_owner_meta_box_html', 'post', 'side');
}
add_action('add_meta_boxes', 'wpwebsite_add_owner_meta_box');

function wpwebsite_owner_meta_box_html($post) {
  $value = get_post_meta($post->ID, 'wpwebsite_owner', true);
  echo '<label for="wpwebsite_owner_field">Имя владельца:</label>';
  echo '<input type="text" id="wpwebsite_owner_field" name="wpwebsite_owner" value="'.esc_attr($value).'" size="25" />';
}

Теперь при создании или редактировании записи можно указывать владельца вручную.

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

Если не хочется писать код, можно использовать готовые плагины:

  • Co-Authors Plus — позволяет назначать несколько авторов на одну запись, что полезно для совместных проектов.
  • WP User Manager — расширяет возможности управления пользователями и их контентом.
  • Advanced Custom Fields (ACF) — помогает создавать удобные пользовательские поля, в том числе для владельцев записи.

Например, с Co-Authors Plus можно добавить соавторов и вывести их имена в шаблоне так:

if (function_exists('coauthors')) {
  coauthors();
} else {
  the_author();
}

Фильтрация записей по владельцу

Для удобства пользователей полезно реализовать фильтрацию записей по владельцу. Если используете кастомное поле, можно добавить параметр в WP_Query:

$args = [
  'post_type' => 'post',
  'meta_key' => 'wpwebsite_owner',
  'meta_value' => 'Иван Иванов',
];
$query = new WP_Query($args);
if ($query->have_posts()) {
  while ($query->have_posts()) {
    $query->the_post();
    // вывод записи
  }
  wp_reset_postdata();
}

Если используете стандартных авторов WordPress, фильтрация осуществляется через параметр author:

$args = [
  'author' => 5, // ID автора
  'post_type' => 'post',
];

Вывод информации об авторе: расширенные данные и кастомные шаблоны

Для улучшенного отображения информации об авторе можно создать кастомный шаблон, который будет показывать:

  • Фото автора;
  • Биографию;
  • Ссылки на соцсети;
  • Список других статей автора.

Пример вывода биографии и аватара:

<div class="wpwebsite-author-box">
  <div class="wpwebsite-author-avatar"><?php echo get_avatar(get_the_author_meta('ID'), 96); ?></div>
  <h3><?php the_author(); ?></h3>
  <p><?php the_author_meta('description'); ?></p>
</div>

Чтобы вывести список статей автора, используйте:

$author_id = get_the_author_meta('ID');
$author_posts = new WP_Query([
  'author' => $author_id,
  'posts_per_page' => 5
]);
if ($author_posts->have_posts()) {
  echo '<ul>';
  while ($author_posts->have_posts()) {
    $author_posts->the_post();
    echo '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
  }
  echo '</ul>';
  wp_reset_postdata();
}
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше