Как вывести комментарии в блоки на главной стра
-
Три блока в разделе «Последние отзывы о выполненных работах» — понимаю что циклом можно все сделать. но что-то не соображу. может быть есть какой-то мануал или статьи для примера или с решением. Самостоятельно не могу найти что-то ничего.
Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]
-
Три блока в разделе «Последние отзывы о выполненных работах»
Самостоятельно не могу найти что-то ничего.Готовые решения — плагины для вывода отзывов на страницах сайта:
А что за плагин — вывода комментариев на отдельную страницу?
Хотелось бы попробовать вывести именно таким образом — по комментарию в каждый блок.
А что за плагин — вывода комментариев на отдельную страницу?
Ищите. Такие точно есть. Один два таких
https://ru.wordpress.org/plugins/show-all-comments-in-one-page/
https://ru.wordpress.org/plugins/better-recent-comments/Но в своем сообщении выше я дал ссылку на более интересные решения посредством плагинов
попробовать вывести именно таким образом — по комментарию в каждый блок.
100% готового решения естественно не будет. Но если подумать то задачу можно решить с помощью предложенных плагинов.
Спасибо, но подскажите — совершенно что-то запутался, плагин будет выводить комментарии, их естественно можно подправить. А как этот плагин будет выводится на самописную страницу?
На самом деле там получается что «отзывы» это обычные комментарии водрдпресса — и вот эти комментарии и нужно вывести.
А как этот плагин будет выводится на самописную страницу?
Я не знаю что такое «самописная страница» и интуитивно чувствую что это что-то нехорошее….
Но как бы там ни было, большинство из плагинов, ссылки на которые я дал результат своей работы вводят шорткодом:
[нужный-шорткод]Который можно вставить с страницу (запись)в редакторе или в текстовом виджете. Или внедрить в нужное место нужного шаблона темы непосредственно в его коде с помощью такой конструкции:
<?php echo do_shortcode('[нужный-шорткод]'); ?>Нашел таки, как мне нужно — вывод комментариев, в нужном месте, например на главной странице, в блоках (показаны не в блоках — но это в общем то не важно.)
https://wp-kama.ru/id_29/funktsiya-dlya-vyivoda-poslednih-kommentariev.html
комментарии выводятся нормально, причем показаны два способа вывода комментариев.вот:
$args = array( 'number' => 10, 'orderby' => 'comment_date', 'order' => 'DESC', 'status' => 'approve', 'type' => 'comment', // только комментарии, без пингов и т.д... ); if( $comments = get_comments( $args ) ){ echo '<ul>'; foreach( $comments as $comment ){ $comm_link = get_comment_link( $comment->comment_ID ); // может быть тяжелый запрос ... $comm_short_txt = mb_substr( strip_tags( $comment->comment_content ), 0, 50 ) .'...'; echo '<li>'. $comment->comment_author .': <a rel="nofollow" href="'. $comm_link .'">'. $comm_short_txt .'</a></li>'; } echo '</ul>'; } /* Данные в объекте $comment stdClass Object ( [comment_ID] => 9727 [comment_post_ID] => 477 [comment_author] => Andrew [comment_author_email] => mail@gmail.com [comment_author_url] => [comment_author_IP] => 178.45.177.200 [comment_date] => 2015-22-01 00:27:04 [comment_date_gmt] => 2015-22-28 21:27:04 [comment_content] => текст коммента [comment_karma] => 0 [comment_approved] => 1 [comment_agent] => Mozilla/5.0 (Windows NT 6.1; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0 [comment_type] => [comment_parent] => 9724 [user_id] => 313 ) */или так
специальная функция для вывода комментариев
/** * Функция для вывода последних комментариев в WordPress. * ver: 0.1 */ function kama_recent_comments( $args = array() ){ global $wpdb; $def = array( 'limit' => 10, // сколько комментов выводить. 'ex' => 45, // n символов. Обрезка текста комментария. 'term' => '', // id категорий/меток. Включить(5,12,35) или исключить(-5,-12,-35) категории. По дефолту - из всех категорий. 'gravatar' => '', // Размер иконки в px. Показывать иконку gravatar. '' - не показывать. 'user' => '', // id юзеров. Включить(5,12,35) или исключить(-5,-12,-35) комменты юзеров. По дефолту - все юзеры. 'echo' => 1, // выводить на экран (1) или возвращать (0). 'comm_type' => '', // название типа комментария 'meta_query' => '', // WP_Meta_Query 'meta_key' => '', // WP_Meta_Query 'meta_value' => '', // WP_Meta_Query 'url_patt' => '', // оптимизация ссылки на коммент. Пр: '%s?comments#comment-%d' плейсхолдеры будут заменены на $post->guid и $comment->comment_ID ); $args = wp_parse_args( $args, $def ); extract( $args ); $AND = ''; // ЗАПИСИ if( $term ){ $cats = explode(',', $term ); $cats = array_map('intval', $cats ); $CAT_IN = ( $cats[ key($cats) ] > 0 ); // из категорий или нет $cats = array_map('absint', $cats ); // уберем минусы $AND_term_id = 'AND term_id IN ('. implode(',', $cats) .')'; $posts_sql = "SELECT object_id FROM $wpdb->term_relationships rel LEFT JOIN $wpdb->term_taxonomy tax ON (rel.term_taxonomy_id = tax.term_taxonomy_id) WHERE 1 $AND_term_id "; $AND .= ' AND comment_post_ID '. ($CAT_IN ? 'IN' : 'NOT IN') .' ('. $posts_sql .')'; } // ЮЗЕРЫ if( $user ){ $users = explode(',', $user ); $users = array_map('intval', $users ); $USER_IN = ( $users[ key($users) ] > 0 ); $users = array_map('absint', $users ); $AND .= ' AND user_id '. ($USER_IN ? 'IN' : 'NOT IN') .' ('. implode(',', $users) .')'; } // WP_Meta_Query $META_JOIN = ''; if( $meta_query || $meta_key || $meta_value ){ $mq = new WP_Meta_Query( $args ); $mq->parse_query_vars( $args ); if( $mq->queries ){ $mq_sql = $mq->get_sql('comment', $wpdb->comments, 'comment_ID' ); $META_JOIN = $mq_sql['join']; $AND .= $mq_sql['where']; } } $sql = $wpdb->prepare("SELECT * FROM $wpdb->comments LEFT JOIN $wpdb->posts ON (ID = comment_post_ID ) $META_JOIN WHERE comment_approved = '1' AND comment_type = %s $AND ORDER BY comment_date_gmt DESC LIMIT %d", $comm_type, $limit ); //die( $sql ); $results = $wpdb->get_results( $sql ); if( ! $results ) return 'Комментариев нет.'; // HTML $out = $grava = ''; foreach ( $results as $comm ){ if( $gravatar ) $grava = get_avatar( $comm->comment_author_email, $gravatar ); $comtext = strip_tags( $comm->comment_content ); $com_url = $url_patt ? sprintf( $url_patt, $comm->guid, $comm->comment_ID ) : get_comment_link( $comm->comment_ID ); $leight = (int) mb_strlen( $comtext ); if( $leight > $ex ) $comtext = mb_substr( $comtext, 0, $ex ) .' …'; $out .= ' <li> '. $grava .' <b>'. strip_tags( $comm->comment_author ) .':</b> <a href="'. $com_url .'" title="к записи: '. esc_attr( $comm->post_title ) .'">'. $comtext .'</a> </li>'; } if( $echo ) return print $out; return $out; }и комментарий выводится на страницу таким образом — например последние комментарии:
-
<?php kama_recent_comments(«limit=10&ex=40»); ?>
Тема «Как вывести комментарии в блоки на главной стра» закрыта для новых ответов.