Ответы в темах

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • В общем, сделал вот так:

    function kama_recent_comments_from_current_cat( $limit=10, $ex=45, $gravatar=0 ){
    	global $post, $cat, $wpdb;
    
    	$limit = (int) $limit;
    	$ex    = (int) $ex;
    
    	// для дочерних рубрик
    	if( $cat && $child_terms = get_categories( array('child_of' => $cat) ) )
    		foreach( $child_terms as $term )
    			$cat .= ','. $term->term_id;
    
    	// для постов
    	if( !$cat && is_singular() && $terms = get_the_category( $post->ID ) )
    		foreach( $terms as $term )
    			$cat .= $term->term_id . ',';
    
    	$cat = rtrim($cat, ',');
    
    	$JOIN = $AND = '';
    	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 * 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 = $grava = '';
    	foreach( $results as $comm ){
    		if( $gravatar )
    			$grava = get_avatar( $comm->comment_author_email, $gravatar );
    
    		$comtext = strip_tags( $comm->comment_content );
    		$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="'. get_comment_link($comm->comment_ID) .'" title="к записи: '. esc_attr($comm->post_title) .'">'. $comtext .'</a>
    		</li>';
    	}
    
    	return $out;
    }

    Может кому пригодится

    Насколько сложно это реализовать?

    Версия WordPress — последняя.

    В общем, нужен код, который я буду вставлять в любое место шаблона и он будет выводить комментарии открытой рубрики (имя, аватар, сообщение и ссылка на этот комментарий), если открыта иная страница — ничего не выводить

    Спасибо большое! Теперь всё работает.

    Один вопрос остался не решен.

    При добавлении страниц, когда пишешь содержимое ссылки, чтобы после нажатия на «Ок» не менялся регистр на нижний

    Вообще реально?

Просмотр 4 ответов — с 1 по 4 (всего 4)