Здравствуйте.
Добавил небольшое дополнение на сайте (вывод всех последних комментариев на отдельной странице). Но, почему-то, для некоторых аватаров, изображения к которым были загружены отдельно пользователями через личный кабинет Wp-Recall не отображаются (с теми аватарами, пользователи которых вошли через uLogin- всё ок). Прошу подсказать, как решить проблему. Заранее прошу прощение за ограниченную компетентность в php 😳
Страница вывода всех последних комментариев:
WP 4.2.5
Wp-Recall 13.8.12
Код функции, которая выводит комменты на страницу:
function page_comments($limit=10, $ex=45, $cat=0, $echo=1, $gravatar=''){ global $wpdb; if($cat){ $IN = (strpos($cat,'-')===false)?"IN ($cat)":"NOT IN (".str_replace('-','',$cat).")"; $join = "LEFT JOIN $wpdb->term_relationships rel ON (p.ID = rel.object_id) LEFT JOIN $wpdb->term_taxonomy tax ON (rel.term_taxonomy_id = tax.term_taxonomy_id)"; $and = "AND tax.taxonomy = 'category' AND tax.term_id $IN"; } $sql = "SELECT comment_ID, comment_post_ID, comment_content, post_title, guid, comment_author, comment_author_email FROM $wpdb->comments com LEFT JOIN $wpdb->posts p ON (com.comment_post_ID = p.ID) {$join} WHERE comment_approved = '1' AND comment_type = '' {$and} ORDER BY comment_date DESC LIMIT $limit"; $results = $wpdb->get_results($sql); $out = '<div id="comments"><ol class="commentlist">'; foreach ($results as $comment){ if($gravatar) $grava = get_avatar( $comment, 50 ); $comtext = strip_tags($comment->comment_content); $leight = (int) iconv_strlen( $comtext, 'utf-8' ); if($leight > $ex) $comtext = iconv_substr($comtext,0,$ex, 'UTF-8').' …'; if(strip_tags($comment->comment_author) == 'Пользователь'){ $autor = " <cite style='color:red;' class='fn'> ".strip_tags($comment->comment_author)."</cite> ответил на вопрос в статье"; }else{ $autor = " <cite class='fn'>".strip_tags($comment->comment_author)."</cite> прокомментировал(а) статью"; } $out .= " <li class='comment'> <div class='comment-body'> $grava <div class='comment-wrapper'> <div class='comment-meta' style='margin-bottom:5px;'> $autor <a style='font-size:14px;color:blue;line-height: 0.5;' href='". get_comment_link($comment->comment_ID) ."'>{$comment->post_title}</a> </div> <div class='hentry-content'> {$comtext} </div> </div> </div> </li> "; } $out .= "</ol></div>"; if ($echo) echo $out; else return $out; } Полагаю, что-то нужно менять в этой части:
if($gravatar) $grava = get_avatar( $comment, 50 ); Заранее благодарен.
у меня нет никакой ошибки. все выводится. А вы без моего комментария перечеркнутого просто $sql исправили и пробывали вывести?
вот пример.
upd
функция
function page_comments($limit=10, $ex=45, $cat=0, $echo=1, $gravatar='1'){
тут я $gravatar присвоил 1
и вывод:
page_comments();
Очень благодарен вам за помощь, вы в который раз меня выручаете 🙂
В прошлый раз внёс все изменения, о которых вы писали + те, что были указаны в зачеркнутом комментарии, но не присваивал $gravatar значения 1. Может быть поэтому?
Сейчас всё корректно отображается (все аватарки). Еще раз благодарю вас!
Позволю себе еще немного наглости и спрошу у вас: подскажите ли вы, где мне нужно "копать" чтобы убрать эту нумерацию комментариев на странице вывода всех последних комментариев:
* В хроме все цифры нумерации наезжают на аватарки, в мозиле - всё корректно - отображаются сбоку. Полагаю нужно копать в css или...?
Не могу понять,как здесь прикрепить изображение, чтобы показать вам скрин.
Установите себе яндекс диск приложение. Оно перехватывает кнопку принтскрин (PrtSc) - там можно будет его обрезать, подписать, наложить стрелки и опубликовать. Оно же позволяет делиться такими скриншотами. Ссылку будете вставлять на само изображение.
А по вашей проблеме с нумерацией -
.entry ol li { list-style: none; }
Я пользуюсь Awesome Screenshot дополнением для хрома и мозилы, скрины сделал, но полагал, тут можно прикреплять изображения... Спасибо, теперь буду знать.
Нашёл строку в стилевом файле темы
.entry ol li {list-style: outside decimal;}
о которой вы говорите, изменил на
.entry ol li {list-style: none;}
... ничего не изменилось (кэш чистил).