Вывод на страницах категорий постов только в виде картинок с титлом

Тема в разделе "Wordpress", создана пользователем dirak, 18 апр 2014.

Модераторы: DzSoft, Sorcus
  1. dirak

    dirak Постоялец

    Регистр.:
    7 фев 2007
    Сообщения:
    107
    Симпатии:
    6
    Подскажите, с помощью какого плагина можно в разделе всех категорий (category/kino, category/soveti) выводить посты только в виде картинок с титлом (без описания). На главной странице вывод постов должен быть стандартный - картинка, титл, описание с кнопкой "далее", а страницы категорий (можно и тэгов) выводились бы без описания, можно в стандартной форме (но обязательно без описания), а можно в виде множества квадратиков с картинками и с титлом.
     
  2. zaregan

    zaregan Постоялец

    Регистр.:
    12 авг 2009
    Сообщения:
    70
    Симпатии:
    41
    Да здесь не нужен плагин.. Достаточно взять ваш index.php, переименовать его в category.php и удалить с этого файла код, что выводит описание.
     
  3. dirak

    dirak Постоялец

    Регистр.:
    7 фев 2007
    Сообщения:
    107
    Симпатии:
    6
    [​IMG]

    Вот такого типа отображение можно как-нибудь сделать? Может плагин какой есть.
     
  4. Solus_Rex

    Solus_Rex

    Регистр.:
    15 янв 2012
    Сообщения:
    425
    Симпатии:
    181
    Плагин попадался, но вспомнить не смог где, а вот то что в шаблонах это встречается - это факт.
    Вот, например, на тестовом сайте я воспроизвёл похожий вариант:
    Перейти по ссылке
     
  5. zaregan

    zaregan Постоялец

    Регистр.:
    12 авг 2009
    Сообщения:
    70
    Симпатии:
    41
    PHP:
                    <?php if ( $child_pages ) : foreach ( $child_pages as $pageChild ) : setup_postdata$pageChild ); ?>
                    <div class="child-thumb">
                     <a href="<?php echo  get_permalink($pageChild->ID); ?>" rel="bookmark" title="<?php echo $pageChild->post_title?>">
                        <?php $thumb get_the_post_thumbnail($pageChild->ID'product-thumb');
                        if (
    $thumb) echo $thumb;
                        else echo 
    '<img width="240" height="180" src="/wp-content/themes/eta/img2/nophoto.jpg">';
                        
    ?>
                        <div class="chtitle"><?php echo $pageChild->post_title?></div>
                     </a>
                    </div>
                    <?php endforeach; wp_reset_postdata(); endif;
                    
    ?>
    Вот пример кода для страниц. $child_pages - в данном случае, это массив дочерних страниц. У вас будет что-то подобное для категорий.
     
  6. zeffs

    zeffs Создатель

    Регистр.:
    18 мар 2008
    Сообщения:
    49
    Симпатии:
    0
    Примерно так я реализовал

    Этот код выдергивает картинку из поста.

    все это дело втавляем в category.php
    PHP:
    <div class="postimg"> <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">               
    <?php $img_url catch_that_image(); $image aq_resize$img_url195true);if($image) : ?> <img src="<?php echo $image ?>"/> <?php endif; ?></a></div>

                        <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
    в 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)){ //Defines a default image
        
    $first_img "/images/default.jpg";
      }
      return 
    $first_img;
    }
    function 
    aq_resize$url$width$height null$crop null$single true ) {
        
    //validate inputs
        
    if(!$url OR !$width ) return false;
        
    //define upload path & dir
        
    $upload_info wp_upload_dir();
        
    $upload_dir $upload_info['basedir'];
        
    $upload_url $upload_info['baseurl'];
        
    //check if $img_url is local
        
    if(strpos$urlhome_url() ) === false) return false;
        
    //define path of image
        
    $rel_path str_replace$upload_url''$url);
        
    $img_path $upload_dir $rel_path;
        
    //check if img path exists, and is an image indeed
        
    if( !file_exists($img_path) OR !getimagesize($img_path) ) return false;
        
    //get image info
        
    $info pathinfo($img_path);
        
    $ext $info['extension'];
        list(
    $orig_w,$orig_h) = getimagesize($img_path);
        
    //get image size after cropping
        
    $dims image_resize_dimensions($orig_w$orig_h$width$height$crop);
        
    $dst_w $dims[4];
        
    $dst_h $dims[5];
        
    //use this to check if cropped image already exists, so we can return that instead
        
    $suffix "{$dst_w}x{$dst_h}";
        
    $dst_rel_path str_replace'.'.$ext''$rel_path);
        
    $destfilename "{$upload_dir}{$dst_rel_path}-{$suffix}.{$ext}";
        
    //if orig size is smaller
        
    if($width >= $orig_w) {
            if(!
    $dst_h) :
                
    //can't resize, so return original url
                
    $img_url $url;
                
    $dst_w $orig_w;
                
    $dst_h $orig_h;
            else :
                
    //else check if cache exists
                
    if(file_exists($destfilename) && getimagesize($destfilename)) {
                    
    $img_url "{$upload_url}{$dst_rel_path}-{$suffix}.{$ext}";
                }
                
    //else resize and return the new resized image url
                
    else {
                    
    $resized_img_path image_resize$img_path$width$height$crop );
                    
    $resized_rel_path str_replace$upload_dir''$resized_img_path);
                    
    $img_url $upload_url $resized_rel_path;
                }
            endif;
        }
        
    //else check if cache exists
        
    elseif(file_exists($destfilename) && getimagesize($destfilename)) {
            
    $img_url "{$upload_url}{$dst_rel_path}-{$suffix}.{$ext}";
        }
        
    //else, we resize the image and return the new resized image url
        
    else {
            
    $resized_img_path image_resize$img_path$width$height$crop );
            
    $resized_rel_path str_replace$upload_dir''$resized_img_path);
            
    $img_url $upload_url $resized_rel_path;
        }
        
    //return the output
        
    if($single) {
            
    //str return
            
    $image $img_url;
        } else {
            
    //array return
            
    $image = array (
                
    => $img_url,
                
    => $dst_w,
                
    => $dst_h
            
    );
        }
        return 
    $image;
    }
    Вроде работает, и красиво оформить в стили.
     
  7. dirak

    dirak Постоялец

    Регистр.:
    7 фев 2007
    Сообщения:
    107
    Симпатии:
    6
    zaregan, этот код в category.php нужно вставить?