8ответ(ов) в теме
Roman Onipko
не в сети 7 лет
На сайте с 10.08.2015
Участник
Тем 19
Сообщения 96
1
19:12

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

Заранее благодарен.

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
2
19:45

исправьте на такую строку

$sql = "SELECT comment_ID, comment_post_ID, comment_content, post_title, guid, comment_author, user_id, comment_author_email FROM $wpdb->comments com LEFT JOIN $wpdb->posts p ON (com.comment_post_ID = p.ID) {$join} 

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
3
19:52

upd и наверно правильно вот эту строку if($gravatar)... привести к такому виду:

if($gravatar) $grava = get_avatar( $comment->user_id, 50 );

Хотя тогда без ссылки  на лк аватарка.

0
Roman Onipko
не в сети 7 лет
На сайте с 10.08.2015
Участник
Тем 19
Сообщения 96
4
21:06

Исправил строку и привел к указанному виду строку if($gravatar). Вываливается ошибка syntax error, unexpected T_STRING в строке 141

141 $out = '<div id="comments"><ol class="commentlist">';

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
5
21:20

у меня нет никакой ошибки. все выводится. А вы без моего комментария перечеркнутого просто $sql исправили и пробывали вывести?

Вы не можете просматривать опубликованные ссылки

вот пример.

upd
функция

function page_comments($limit=10, $ex=45, $cat=0, $echo=1, $gravatar='1'){ 

тут я $gravatar присвоил 1

и вывод:

page_comments();

0
Roman Onipko
не в сети 7 лет
На сайте с 10.08.2015
Участник
Тем 19
Сообщения 96
6
22:45

Очень благодарен вам за помощь, вы в который раз меня выручаете 🙂
В прошлый раз внёс все изменения, о которых вы писали + те, что были указаны в зачеркнутом комментарии, но не присваивал $gravatar значения 1. Может быть поэтому?
Сейчас всё корректно отображается (все аватарки). Еще раз благодарю вас!
Позволю себе еще немного наглости и спрошу у вас: подскажите ли вы, где мне нужно "копать" чтобы убрать эту нумерацию комментариев на странице вывода всех последних комментариев:

Вы не можете просматривать опубликованные ссылки

* В хроме все цифры нумерации наезжают на аватарки, в мозиле - всё корректно - отображаются сбоку. Полагаю нужно копать в css или...?
Не могу понять,как здесь прикрепить изображение, чтобы показать вам скрин.

0
Вова (Otshelnik-Fm)
не в сети 3 дня
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18654
7
22:57

Установите себе яндекс диск приложение. Оно перехватывает кнопку принтскрин (PrtSc) - там можно будет его обрезать, подписать, наложить стрелки и опубликовать. Оно же позволяет делиться такими скриншотами. Ссылку будете вставлять на само изображение.

А по вашей проблеме с нумерацией -

Вы не можете просматривать опубликованные ссылки

.entry ol li {
    list-style:  none;
}

0
Roman Onipko
не в сети 7 лет
На сайте с 10.08.2015
Участник
Тем 19
Сообщения 96
8
23:14

Я пользуюсь Awesome Screenshot дополнением для хрома и мозилы, скрины сделал, но полагал, тут можно прикреплять изображения... Спасибо, теперь буду знать.

Нашёл строку в стилевом файле темы

.entry ol li {list-style: outside decimal;}

о которой вы говорите, изменил на

.entry ol li {list-style: none;}

... ничего не изменилось (кэш чистил).

0
Тема закрыта. Публикация новых сообщений запрещена.