Главная
Wordpress
Как показать автора записи WordPress
  • 01 Апр 2015г
  • 1547
  • 15
  • Рубрика: Wordpress

Как показать автора записи WordPress

Вывод автора Wordpress

Доброго времени суток. 🙂

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

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

Для того чтобы просто вывести имя автора, Вам поможет стандартная функция WordPress - the_author();. Ее нужно добавить в нужном месте файла - single.php. Как пример, можно сделать так:

Автор статьи: <?php the_author(); ?>

Теперь давайте рассмотрим как вывести блок об авторе записи.

Блок об авторе

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

Я сразу представлю готовый результат, потом разберем по порядку.

<div id="article-author">
<div class="author">Автор статьи: <?php the_author(); ?></div>
<div id="author-image"><?php $author_email = get_the_author_email(); echo get_avatar($author_email,'75');?></div>
<div id="author-text"><?php the_author_description();?></div>
<div class="post-counter"><?php the_author(); ?> опубликовал статей: <?php the_author_posts(); ?></div>
</div>
  1. Для начала создаем родительский блок, который будет контейнером для всего что мы выведем. Зададим ему id - article-author
  2. Далее блок author, с выводом имени автора, благодаря функции - the_author();.
  3. Потом блок author-image, где мы выводим аватар с помощью функции:
    <?php $author_email = get_the_author_email(); echo get_avatar($author_email,'75');?>
    

    Цифра 75 - это размер аватара в пикселях. Можете менять под себя.

  4. author-text - блок с информацией о авторе. Для ее вывода нужна функция - the_author_description();.
  5. Последний блок - post-counter, в нем выводим количество опубликованных записей пользователя через функцию - the_author_posts();.

Чтобы задать правильный внешний вид, нужно добавить CSS стилей.

/*Автор поста*/
#article-author {
	float: right;
	width: 50%;
	margin-bottom: 20px;
	padding: 10px;
	-webkit-box-shadow:0 0 5px 0 rgba(50, 50, 50, 0.1);
	-moz-box-shadow:0 0 5px 0 rgba(50, 50, 50, 0.1);
	box-shadow: 0 0 5px 0 rgba(50, 50, 50, 0.1);}
#author-image{
	float: left;}
#author-text {
	font-size:12px;
	color:#999;
	text-align:justify;
	overflow:hidden;}
.post-counter{
	margin-top:13px;
	font-size: 12px;}
.author{
	font-size:14px;
	margin-bottom:10px;}

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

На этом все, спасибо за внимание. 🙂




Если Вам был полезным мой труд, можете поддержать сайт, обменяться со мной текстовыми ссылками или посмотреть рекламку, что займет 2 минуты :)


Оцените статью
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(13 голосов, в среднем: 4.7 из 5)

Опубликовано 15 комментариев

  • Amylee
    Комментариев: 2

    можно ли выводить имена только авторов-пользователей сайта, но не админа?
    типо того: " если (if) автор-админ, то (echo) вывод информации об авторе: нет"

    • Виталий
      Комментариев: 267

      Да можно, вот это условие уже с кодом
      <?php
      if (!author_can($post->ID, 'administrator')){ ?>
      <div id="article-author">
      <div class="author">Автор статьи: <?php the_author(); ?></div>
      <div id="author-image"><?php $author_email = get_the_author_email(); echo get_avatar($author_email,'75');?></div>
      <div id="author-text"><?php the_author_description();?></div>
      <div class="post-counter"><?php the_author(); ?> опубликовал статей: <?php the_author_posts(); ?></div>
      </div>
      <?php } ?>
      То есть это условие можно применять не только для вывода инфы. Вот код самого условия
      if (!author_can($post->ID, 'administrator')){ ?>
      // Сюда текст или код
      <?php } ?>

  • Ярослав
    Комментариев: 1

    Подскажите а как вывести данные если несколько авторов

    • Виталий
      Комментариев: 267

      У записи может быть только один автор, тот кто ее создал. Те кто редактируют не являются авторами. Если же вам нужно где-то вывести всех авторов со своего сайта, то поможет эта статья - http://gnatkovsky.com.ua/kak-vyvesti-spisok-avtorov-wordpress.html

  • Николай
    Комментариев: 1

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

    • Виталий
      Комментариев: 267

      Задайте условие указанное ниже
      <?php if ( in_category( array( '9,15' ) )){ ?>
      //сюда код из статьи
      <?php } ?>

      Добавьте код из статьи, также 9 и 15 это айди рубрик замените на свои. Чтобы узнать айди рубрик посмотрите вторую часть этой статьи .там указано как это сделать http://gnatkovsky.com.ua/vyvod-zapisej-na-glavnoj-iz-opredelennyx-rubrik-v-wordpress.html

      Чтобы вывести в сайдбаре, добавьте все что у вас получится в Файл sidebar.php, он отвечает за сайдбар. Вставлять нужно в то место, где хотите чтобы появился блок.

  • Артём
    Комментариев: 13

    Подскажите пожалуйста можно ли вывести на страницу список записей определенного автора?
    Т.е если зашел определенный пользователей и есть статичная страница и на ней отображаются все записи вошедшего пользователя , если зашел другой то на этой же странице записи другого пользователя.
    Нашел данный код:
    function get_related_author_posts() {
    global $authordata, $post;

    $authors_posts = get_posts( array( 'author' => $authordata->ID, 'post__not_in' => array( $post->ID ), 'posts_per_page' => 100 ) );

    $output = '';
    foreach ( $authors_posts as $authors_post ) {
    $output .= '' . apply_filters( 'the_title', $authors_post->post_title, $authors_post->ID ) . '';
    }
    $output .= '';

    return $output;
    }
    и вывод функции в шаблоне :
    для вывода списка записей определенного автора , но он как-то не правильно работает , всегда выводить все записи которые есть , под каким бы я пользователем не зашел , т.е не выводит записи конкретного пользователя, а все. Если вообще ни кто не зашел на сайт то все равно выводит список всех записей

    • Артём
      Комментариев: 13

      и вывод функции в шаблоне : <?php echo get_related_author_posts(); ?>

      *пропустил

      • Виталий
        Комментариев: 267

        Ради Вас написал код. Нужно будет написать об этом статью ибо инфы по этому поводу почти нет.
        И так. В нужом Вам месте нужно просто добавить код:
        <?php if ( is_user_logged_in() ) {
        $query = new WP_Query( array( 'author' => get_current_user_id(),) );
        while ($query->have_posts() ) : $query->the_post(); ?>
        <h1><?php the_title(); ?></h1>
        <?php endwhile; wp_reset_postdata(); } ?>
        Первая строка кода - это мы проверяем условие, авторизован ли пользователь, а в самом конце скобка }, которая закрывает условие. Это для того, что если пользователь не авторизован, чтобы не выводило просто все записи. Далее уже идет вывод всех постов, что написал пользователь, который вошел. В 4 строке мы как раз и выводим названия записей. Просто названия как текст, если хотитесделать ссылкой, то пропишите в виде ссылки, хотите добавить немного тектста, советую добавить функцию из статьи - gnatkovsky.com.ua/dlina-opisaniya-citaty-tizera-teksta-zapisi-wordpress-s-pomoshhyu-wp_trim_words.html
        Ну и так далее. Можно добавить что угодно, было бы желание, по сути это обычный цикл.

        • Артём
          Комментариев: 13

          Спасибо очень помогло.
          Просмотрел сайт , очень хорошие разборы у Вас по WP, отдельная благодарность)
          Ну и как Вы написали было бы хорошо по данной теме сделать разбор , думаю многим помогли бы.
          А еще подскажите пожалуйста как в данном случаем правильно вывести чтобы заголовок был ссылкой на запись ?
          <?php get_permalink();?> не хочет

        • Виталий
          Комментариев: 267

          Замените четвертую строку на такой код
          <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>

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

Заполните поля ниже. Ваш e-mail не будет опубликован. Обязательные поля помечены *

Уважаемые пользователи! При добавлении комментариев на сайт Вам следует соблюдать правила указанные под формой отправки комментариев.

Соблюдайте добавления комментариев

Это не спам *

Нажмите, чтобы добавить код в комментарий