Когда мы заходим на страницу какого-нибудь автора, WordPress ищет подходящий шаблон текущей темы.
Сначала он проверит существует ли файл author-$nickname.php, если нет — то проверит существования файла author-$id.php. (С помощью таких файлов мы можем создать отдельный шаблон для страницы какого-нибудь одного автора)
Если этих файлов нет, то он проверит существует ли файл author.php. Такой шаблон будет применяться на странице всех авторов (для которых нет специальных шаблонов, о которых написано выше). И именно такой файл нам, вероятно, и понадобится для страницы автора.
А если нет и файла author.php, то тогда wordpress попытается найти файл archive.php .Такой файл в теме, скорее всего есть уже есть, а если и его нет, то будет применён файл index.php. Подробнее об этой иерархии шаблонов можно почитать тут или тут.
Таким образом, если мы хотим как-то изменить страницу автора, то нам нужно создать файл шаблона author.php (например, для начала, скопировав в него код файла archive.php). Или можно использовать в файле, например, archive.php условный тег is_author(), который проверяет, что Вы находитесь на странице автора.
1 2 3 4 |
if(is_author()){ /*что-то делаем на страницах автора.*/} /*Эта функция ещё принимает параметры: ID автора, имя автора (у меня это не сработало) и никнэйм автора, или несколько параметров в массиве*/ if(is_author('19')){ /*что-то делаем на страницах автора c ID==19.*/} if(is_author('ivan')){ /*что-то делаем на страницах автора c ником=='ivan' (точное совпадение).*/} |
Как на странице автора найти информацию о нём?
Итак, пусть в блоке кода, который сработает на странице автора (в шаблоне author.php или внутри условного тега is_author()) нам нужно вывести информацию о нём. Например, мы хотим вверху страницы вывести имя автора, его биографию, фотографию, ссылку на все материалы автора с указанием их количества.
Для этого нам подойдёт функция get_queried_object(), которая возвращает информацию об объекте запроса. Например, на странице категории вернёт объект этой категории. А на странице автора — объект класса WP_User с информацией об авторе.
1 2 3 4 5 6 7 8 |
$author=get_queried_object(); echo $author->ID; //покажет ID автора echo $author->data->user_nicename; //никнэйм echo $author->data->display_name; //отображаемое имя //К сожалению, тут нет биографии (description). Показать её можно так: the_author_meta( 'description',$author->ID); // И нет аватарки echo get_avatar( $author->ID, 600 /*size*/, ''/*аватарка по умолчанию*/, $author->data->display_name /*alt*/); |