Показать изображение автора в записях

17 апр. 2012 г., 10:26:24
Просмотры: 37.1K
Голосов: 4

Мне нужно отобразить изображение автора вместе с записями. Я использовал следующий код для отображения записей с изображением автора.

$the_query = new WP_Query("post_type=post&paged=".get_query_var('paged'));
while ( $the_query->have_posts() ) : $the_query->the_post();

<?php the_excerpt(); ?>
<p><?php the_author_image(); ?></p>

<?php endwhile; ?>

Но изображение автора не отображается. Я не смог отследить ошибку. Как я могу это сделать?

2
Комментарии

Я не думаю, что the_author_image() является стандартной функцией WordPress: в области редактирования профиля пользователя в панели управления нет места для установки изображения. Похоже, вам нужен этот плагин: http://wordpress.org/extend/plugins/sem-author-image/ В противном случае вам придется загружать изображения авторов, добавлять пользовательское поле в таблицу метаданных пользователя, которое будет хранить "attachment" post для этого автора, затем получать данные метаполя и выводить их в виде тега <img> там, где у вас указана функция the_author_image() в приведенном коде.

miahelf miahelf
17 апр. 2012 г. 10:38:41

Вы правы. Я использую плагин author image для загрузки изображений авторов. Если я использую код "while ( have_posts() ) : the_post();", изображение автора отображается правильно. Но мне нужно использовать код "while ( $the_query->have_posts() ) : $the_query->the_post();". Могу ли я получить правильное отображение изображения автора при использовании второго варианта кода?

designersvsoft designersvsoft
17 апр. 2012 г. 10:45:14
Все ответы на вопрос 4
1

Я знаю, что это старо, но я наткнулся на это как раз перед тем, как нашел решение.

Чтобы отобразить изображение автора внутри цикла (loop), просто используйте этот код:

<?php echo get_avatar( get_the_author_meta( 'ID' ) , 32 ); ?>

Где '32' — это размер изображения. Если код используется вне цикла, просто укажите ID пользователя автора.

19 сент. 2012 г. 19:48:18
Комментарии

+1 Спасибо за поздний ответ! Всегда полезно для сообщества, когда вопросы подробно разбираются, даже если они уже давно неактуальны.

Brian Fegter Brian Fegter
21 сент. 2012 г. 04:50:47
4

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

the_author_image($authorid);

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

17 апр. 2012 г. 10:54:07
Комментарии

Я правильно получил ID автора, но изображение не отображается.

designersvsoft designersvsoft
17 апр. 2012 г. 11:00:39

Можешь попробовать жестко прописать один из ID авторов вот так и сказать, что получится: the_author_image(5);

miahelf miahelf
18 апр. 2012 г. 03:09:41

Я просто использовал query_post вместо new wp_query, и код "the_author_image($authorid);" заработал. В любом случае, спасибо за ваши постоянные усилия

designersvsoft designersvsoft
19 апр. 2012 г. 07:24:21

Если вы нашли решение своей проблемы, не стесняйтесь опубликовать его в качестве ответа и примите его. Или, если вы считаете, что мой пост прояснил то, что вам нужно, вы можете принять его вместо этого.

miahelf miahelf
19 апр. 2012 г. 10:14:45
0

Обратите внимание, что ответы здесь относятся к встроенной фотографии Gravatar. Если вы хотите выбрать/установить фотографии для своих авторов, вам понадобится плагин или написать собственный код, как упоминает miahelf.

24 окт. 2012 г. 20:46:04
1

Загрузка конкретного изображения для автора требует двух вещей:

  • расширить функцию get_the_author_meta()
  • связать реализацию расширения с системой управления медиафайлами в WordPress

Обратите внимание, что функция get_the_author_image() устарела и не будет работать в WordPress версии выше 3.0

2 дек. 2013 г. 01:52:56
Комментарии

Это довольно расплывчатый ответ...

kaiser kaiser
2 дек. 2013 г. 02:29:32