Похожие записи

(Ответов: 2, Просмотров: 525)
  1. Новичок
    • Регистрация: 24.04.2013
    • Сообщений: 1
    • Репутация: 0
    Всем привет!
    Помогите пожалуйста, хочу чтобы в похожих записях отоброжались не миниатюры а первая картинка поста, везде искал но не нашел.
    Код:
    <?php 
    global $SMTheme;
    if ($SMTheme->get( 'layout', 'related' )) { ?>
    				<div class="related-posts">
    				<h3><?php echo $SMTheme->_( 'relatedposts' )?>:</h3><ul>
    		<?php
    		$postid=$post->ID;
    		$showed_posts=array();
    		$tags=get_the_tags($postid);
    		$categories = get_the_category($postid);
    		$post_cnt=0;
    		$first=0;
    		if ($tags) {
    			$tags_ids = array();
    			foreach($tags as $tag) $tags_ids[] = $tag->term_id;
    			$args=array(
    			'tag__in' => $tags_ids,
    			'post__not_in' => array($postid),
    			'showposts'=>$SMTheme->get( 'layout', 'relatedcnt' ),
    			'caller_get_posts'=>1);
    			$posts=get_posts($args);
    			if( count($posts)>0 ) {
    				foreach ($posts as $p) {
    					$post_cnt++;
    					$showed_posts[]=$p->ID;
    					?>
    					<li<?php echo (!($first%4))?" class='first'":""?>><?php
    					if ($SMTheme->get( 'layout', 'colors' )) {
    						$r=rand(1,150);
    						$g=rand(1,150);
    						$b=rand(1,150);
    					} else {
    						$r=$g=$b=1;
    					}
    					$first++;
                    if(has_post_thumbnail($p->ID))  {
                        ?><a href="<?php echo get_permalink($p->ID); ?>" title="<?php printf( $SMTheme->_( 'permalink' ), $p->post_title ); ?>" class='img'><?php
    					echo get_the_post_thumbnail($p->ID,array(126,126), array('title'=>$p->post_title, 'alt'=>$p->post_title));
    					?></a><?php  
                    } else {
    					?><a href="<?php echo get_permalink($p->ID); ?>" title="<?php printf( $SMTheme->_( 'permalink' ), $p->post_title ); ?>" class='img'><img src='<?php echo get_template_directory_uri(); ?>/images/smt/article_related.png' width='126' height='126' alt='article' /></a><?php  
    				}
                ?><br /><a href="<?php echo get_permalink($p->ID) ?>" title="<?php printf( $SMTheme->_( 'permalink' ), $p->post_title ); ?>" rel="bookmark" class="related-ttl"><div class='related-bg' style='background:rgb(<?php echo $r.",".$g.",".$b?>)'></div><span><?php echo $p->post_title ?></span></a></li>
    					<?php
    				}
    			}
    		}
    		if ($categories&&($post_cnt<$SMTheme->get( 'layout', 'relatedcnt' ))) {
    			$category_ids = array();
    			foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;
    			$showed_posts[]=$postid;
    			$args=array(
    			'category__in' => $category_ids,
    			'post__not_in' => $showed_posts,
    			'showposts'=>$SMTheme->get( 'layout', 'relatedcnt' )-$post_cnt,
    			'caller_get_posts'=>1);
    			$posts=get_posts($args);
    			if( count($posts)>0 ) {
    				foreach ($posts as $p) {
    					$ttl=iconv_substr( $p->post_title, 0, 150, 'utf-8' );
    					?>
    					<li<?php echo (!($first%4))?" class='first'":""?>><?php
    					$post_cnt++;
    					if ($SMTheme->get( 'layout', 'colors' )) {
    						$r=rand(1,150);
    						$g=rand(1,150);
    						$b=rand(1,150);
    					} else {
    						$r=$g=$b=1;
    					}
    					$first++;
                   if(has_post_thumbnail($p->ID))  {
                        ?><a href="<?php echo get_permalink($p->ID); ?>" title="<?php printf( $SMTheme->_( 'permalink' ), $p->post_title ); ?>" class='img'><?php
    					echo get_the_post_thumbnail($p->ID,array(126,126), array('title'=>$p->post_title, 'alt'=>$p->post_title));
    					?></a><?php  
                    } else {
    					?><a href="<?php echo get_permalink($p->ID); ?>" title="<?php printf( $SMTheme->_( 'permalink' ), $p->post_title ); ?>" class='img'><img src='<?php echo get_template_directory_uri(); ?>/images/smt/article_related.png' width='126' height='126' alt='article' /></a><?php  
    				}
                ?><br /><a href="<?php echo get_permalink($p->ID) ?>" title="<?php printf( $SMTheme->_( 'permalink' ), $p->post_title ); ?>" rel="bookmark" class="related-ttl"><div class='related-bg' style='background:rgb(<?php echo $r.",".$g.",".$b?>)'></div><span><?php echo $p->post_title ?></span></a></li>
    					<?php
    				}
    			}
    		}
    		
    		if (!$post_cnt) {
    			?><p><?php echo $SMTheme->_( 'norelatedposts' )?></p><?php
    		}
    		?></ul></div>
    	<?php } ?>
    Посмотрите пожалуйста вот код который отвечает за выводом похожих записях.
    У меня тема DroidPress сайт пока на локале.
    • 0
  2. Опытный Аватар для MacDrive
    • Регистрация: 13.11.2010
    • Сообщений: 302
    • Репутация: 57
    msvanciu, а зачем код менять, который, как я понимаю, изначально был в тему встроен? Просто добавьте к каждому посту миниатюру, идентичную первой картинке. Я так в своей теме сделал и всё ок)
    • 0
  3. Новичок Аватар для dionigi
    • Регистрация: 04.04.2013
    • Сообщений: 15
    • Репутация: 2
    msvanciu,
    В файле functions.php пишем:
    PHP код:
    //вывод первью поста
    function catch_that_image() {
      global 
    $post$posts;
      
    $first_img '';
      
    ob_start();
      
    ob_end_clean();
      
    $output preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i'$post->post_content$matches);
      
    $first_img $matches [1] [0];
     
      if(empty(
    $first_img)){ //изображение по умолчанию
        
    $first_img "' .  get_bloginfo('template_directory') . '/img/default_post_thumb.jpg";
      }
      return 
    $first_img;

    В цикле вывода поста пишем:
    PHP код:
    <img src="<?php echo catch_that_image(); ?>" alt="">
    Удачи:)
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
Google Adsense - похожие партнерки
PPC и контекстная реклама 5 12.09.2011 13:41
Похожие записи в виде миниатюр через tags
Web программирование 0 04.09.2011 17:27
Как делать похожие тексты?
Вопросы от новичков 10 10.08.2011 01:11
Как делать похожие тексты?
Прочее 1 05.08.2011 22:09

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры