Здравствуйте.
Добавил небольшое дополнение на сайте (вывод всех последних комментариев на отдельной странице). Но, почему-то, для некоторых аватаров, изображения к которым были загружены отдельно пользователями через личный кабинет 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;}... ничего не изменилось (кэш чистил).