• Три блока в разделе «Последние отзывы о выполненных работах» — понимаю что циклом можно все сделать. но что-то не соображу. может быть есть какой-то мануал или статьи для примера или с решением. Самостоятельно не могу найти что-то ничего.

    Страница, с которой нужна помощь: [войдите, чтобы увидеть ссылку]

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Три блока в разделе «Последние отзывы о выполненных работах»
    Самостоятельно не могу найти что-то ничего.

    Готовые решения — плагины для вывода отзывов на страницах сайта:

    https://ru.wordpress.org/plugins/search/Testimonials

    • Ответ изменён 7 лет, 2 месяца назад пользователем O.
    • Ответ изменён 7 лет, 2 месяца назад пользователем O.
    • Ответ изменён 7 лет, 2 месяца назад пользователем O.

    А что за плагин — вывода комментариев на отдельную страницу?

    Хотелось бы попробовать вывести именно таким образом — по комментарию в каждый блок.

    А что за плагин — вывода комментариев на отдельную страницу?

    Ищите. Такие точно есть. Один два таких
    https://ru.wordpress.org/plugins/show-all-comments-in-one-page/
    https://ru.wordpress.org/plugins/better-recent-comments/

    Но в своем сообщении выше я дал ссылку на более интересные решения посредством плагинов

    попробовать вывести именно таким образом — по комментарию в каждый блок.

    100% готового решения естественно не будет. Но если подумать то задачу можно решить с помощью предложенных плагинов.

    • Ответ изменён 7 лет, 2 месяца назад пользователем O.
    • Ответ изменён 7 лет, 2 месяца назад пользователем O.

    Спасибо, но подскажите — совершенно что-то запутался, плагин будет выводить комментарии, их естественно можно подправить. А как этот плагин будет выводится на самописную страницу?

    На самом деле там получается что «отзывы» это обычные комментарии водрдпресса — и вот эти комментарии и нужно вывести.

    А как этот плагин будет выводится на самописную страницу?

    Я не знаю что такое «самописная страница» и интуитивно чувствую что это что-то нехорошее….

    Но как бы там ни было, большинство из плагинов, ссылки на которые я дал результат своей работы вводят шорткодом:
    [нужный-шорткод]

    Который можно вставить с страницу (запись)в редакторе или в текстовом виджете. Или внедрить в нужное место нужного шаблона темы непосредственно в его коде с помощью такой конструкции:
    <?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»); ?>
Просмотр 9 ответов — с 1 по 9 (всего 9)

Тема «Как вывести комментарии в блоки на главной стра» закрыта для новых ответов.