Если вывести все посты автора, то в нем для полноты сведений не хватает дополнительной информации о самом авторе. Если добавить контактные данные из профиля автора, его аватар, количество опубликованных им постов, информацию из поля Биография, то получиться настоящая страница общедоступного профиля.
Вывод ника автора
Обычно в архиве постов определенного автора ограничиваются заголовком “Архив автора”. Конечно можно смекнуть, в архив к какому автору вы попали, но все же вывести его никнейм будет не лишним. Для этого вставьте в functions.php код:
function p2_archive_author() { echo p2_get_archive_author(); } function p2_get_archive_author() { if ( get_query_var( 'author_name' ) ) $curauth = get_userdatabylogin( get_query_var( 'author_name' ) ); else $curauth = get_userdata( get_query_var( 'author' ) ); if ( isset( $curauth->display_name ) ) return apply_filters( 'p2_get_archive_author', $curauth->display_name ); }
Эта две функции определяют автора архива и возвращают его никнейм. Чтобы его вывести, нужно добавить в шаблон:
</pre> [info txt=”Здесь и далее под шаблоном я подразумеваю файл, отвечающий за вывод постов автора. Это можно сделать и с помощью index.php, и с помощью archive.php, и author.php, и другими способами. <a href='https://n-wp.ru/poryadok-zagruzki-faylov-pri-otobrazhenii-stranits-bloga-na-wordpress-sistema-shablonov/' title='Шаблоны в WordPress'>Поднобнее о шаблонах WordPress</a>.”] <h2> Вывод имени и фамилии автора</h2> <p>Если автор в своем профиле указал имя и фамилию, то ее можно вывести в архиве постов этого автора. Для получения данных об авторе постов из его профиля в блоге нужно в начале шаблона, еще до вывода дополнительных данных, вставить код:</p> <pre>
Этот запрос определяет автора постов архива, и позволяет оперировать доступными данными, которые тот указал в своем профиле. Чтобы вывести имя и фамилию автора, вставьте в шаблон:
first_name): ?> //проверяем, заполнено ли поле Имя first_name; ?> //если заполнено, то выводим имя автора и ставим после него пробел last_name): ?> //проверяем, заполнено ли поле Фамилия last_name; ?> //если заполнено, то выводим фамилию автора
В итоге, если автор указал имя и фамилию, то этот код выведет их. Если заполнено только имя или только фамилия, то и эти одиночные данные будут выведены.
Вывод аватара автора
Для вывода аватара вставьте в шаблон код:
user_email, '40', ''); ?>
Этот код определяет e-mail автора, указанный им при регистрации, и по нему из сервиса gravatar.com выводит аватар размером 40 на 40. Так как у автора обязательно есть e-mail, то вставлять проверку его существования не нужно. Вы можете по желанию изменить размер аватара.
Вывод количества постов автора
Чтобы получить количество постов, опубликованное данным автором, используйте в шаблоне следующий код:
Количество записей:
Вывод текста, который автор написал о себе в профиле
При заполнении профиля авторы нередко пишут о себе небольшой текст. Чтобы его вывести в архиве автора, используйте в шаблоне код:
user_description; ?>
Если текст введен, то он отобразится, если нет, то вместо него будет пустое место. Если вы хотите его избежать, то можете использовать этот код с дополнительной проверкой:
user_description): ?> //если заполнено поле Биография user_description; ?> //то выводится текст об авторе из его профиля
По-умолчанию ссылки и HTML-разметка в поле Биография обрезаются. Чтобы добавить возможность вставлять ссылки и красиво оформлять этот текст, можно воспользоваться ответом, который я дал на один из вопросов. Чтобы добавить к полю Биография привычные кнопки визуального редактора, воспользуйтесь способом Как добавить кнопки редактора к полю Биография в профиле пользователя.
Вывод социальных контактов автора
Стандартно WordPress позволяет указать несколько социальных контактов, большинство из которых – мессенджеры, которыми сейчас практически никто не пользуется. Если нужно добавить в профиль такие социальные сети, как Twitter, Facebook, Google+, то воспользуйтесь рецептом Как добавить дополнительные контактные данные в профиль пользователя. Давайте добавим поля Twitter, Facebook, Google+, и уберем редко используемые в рунете поля. Для этого нужно добавить в functions.php этот код:
function add_twitter_contactmethod( $contactmethods ) { // Добавляем Twitter - нужно вводить в поле только никнейм $contactmethods['twitter'] = 'Twitter (ваш ник в Twitter)'; // Добавляем Facebook - нужно вводить в поле только никнейм $contactmethods['facebook'] = 'Facebook (ваш ник в Facebook)'; // Добавляем Google+ - нужно вводить в поле только ID в сети Google+ $contactmethods['google_plus'] = 'Google+ (ваш ID в Google+)'; // Убираем Yahoo IM unset($contactmethods['yim']); // Убираем AIM unset($contactmethods['aim']); // Убираем Jabber unset($contactmethods['jabber']); return $contactmethods; } add_filter('user_contactmethods','add_twitter_contactmethod',10,1);
Теперь давайте выведем эти данные об авторе. Для этого в шаблон вставьте код:
google_plus): ?> <a title="Google+ автора" href="https://plus.google.com/google_plus; ?>">Google+</a> //выводим ссылку на профиль автора в Google+ twitter): ?> <a title="Twitter автора" href="http://twitter.com/twitter; ?>">Twitter</a> //выводим ссылку на профиль автора в Twitter facebook): ?> <a title="Facebook автора" href="http://www.facebook.com/facebook; ?>">Facebook</a> //выводим ссылку на профиль автора в Facebook user_url): ?> <a title="Сайт автора" href="user_url; ?>">Сайт</a> //выводим ссылку на сайт автора
Вывод RSS постов автора
Если приглядеться, то можно увидеть, что в каждом виде архивов есть дополнительный RSS-канал. Если это архив постов определенной категории, то присутствует RSS постов этой категории, если это архив постов с определенной меткой, то в нем присутствует отдельный RSS канал постов с этой меткой. Если же это архив постов, написанных каким-нибудь автором, то в нем есть RSS канал именно этих постов, и на него можно подписаться. Чтобы выдвинуть подписку на RSS постов автора из тени на передний план, можно вывести отдельную ссылку на этот канал.
Для этого добавьте в functions.php код:
function p2_author_feed_link() { echo p2_get_author_feed_link(); } function p2_get_author_feed_link() { if ( get_query_var( 'author_name' ) ) $curauth = get_userdatabylogin( get_query_var( 'author_name' ) ); else $curauth = get_userdata( get_query_var( 'author' ) ); if ( isset( $curauth->ID ) ) return apply_filters( 'p2_get_author_feed_link', get_author_feed_link( $curauth->ID ) ); }
Чтобы вывести ссылку на RSS постов автора, вставьте в шаблон код:
<a title="Подписаться на RSS записей автора" href="">RSS</a>
Вывод нумерации страниц в архиве
Если постов в архиве много, то архив разбивается на множество страниц. Обычно нумерацию страниц отдельным пунктом не проставляют, и чтобы узнать, на какой же странице архива вы находитесь, нужно либо посмотреть на индикатор постраничной навигации, либо, если в блоге используется не постраничная, а последовательная навигация, посмотреть на заголовок окна браузера. Если же в блоге не используются специальные seo-плагины, формирующие человеческий заголовок для текущего окна, то можно и вообще потеряться. Меня такое положение не устраивает, и я стараюсь во всех блогах указывать отдельным пунктом номер текущей страницы.
Чтобы узнать текущий номер страницы архива, вставьте в functions.php код:
function p2_page_number() { echo p2_get_page_number(); } function p2_get_page_number() { global $paged; return apply_filters( 'p2_get_page_number', $paged ); }
Чтобы вывести номер страницы, вставьте в шаблон код:
Страница 1 ) : ?> 1
Вывод ссылки отправки письма автору
Для большинства из нас главным средством коммуникации является старая, добрая, практически ламповая электронная почта. Можно добавить ссылку для быстрой связи с автором постов по электронной почте – кликнув по ней, посетитель откроет окно почтовой программы с введенным уже электронным адресом автора и темой письма.
Для этого вставьте в шаблон код:
<a rel="nofollow" title="Написать автору письмо" href="mailto:user_email; ?>?subject=С сайта to_site.ru (http://to_site.ru/author/nickname; ?>/page/ 1 ) : ?>1)&Body=http://to_site.ru/author/nickname; ?>/page/ 1 ) : ?>1">Написать автору по электронной почте</a>
В коде нужно заменить to_site.ru на свой домен. Понятно, что структура /to_site.ru/author/nickname является дефолтной, стандартной для WordPress. Если вы изменяли каким-либо образом структуру внутренних ссылок, ведущих к архивам, отходя от стандартной, то вам нужно будет сменить ее и в приведенном коде. При клике по такой ссылке открывается электронное письмо с уже введенным электронным адресом, в теме письма указано, с какого оно сайта отправляется, и даже фигурирует нумерация страниц, остается только добавить свой текст и отправить.
После таких добавок архив автора становится поход на настоящий профиль, в котором есть все данные об этом авторе.