За последние 24 часа нас посетили 24556 программистов и 1677 роботов. Сейчас ищут 1138 программистов ...

Вывод похожих записей по меткам в Wordpress

Тема в разделе "Wordpress", создана пользователем all003, 1 май 2016.

  1. all003

    all003 Новичок

    С нами с:
    1 май 2016
    Сообщения:
    4
    Симпатии:
    0
    Здравствуйте. Скачал тему для wordpress "Rowling". В этой теме в статьях выводятся миниатюры последних опубликованных статей в рубрике. Я бы хотел чтобы выводились похожие записи по меткам (рандомно) и надеюсь, что вы мне поможете с этим.
    Вот код из functions.php
    Код (Text):
    1. function rowling_related_posts($number_of_posts) { ?>
    2.  
    3.     <div class="related-posts">
    4.      
    5.         <p class="related-posts-title"><?php _e('Read Next','rowling'); ?> &rarr;</p>
    6.      
    7.         <div class="row">
    8.                      
    9.             <?php // Check for posts in the same category
    10.                  
    11.                 global $post;
    12.                 $cat_ID = array();
    13.                 $categories = get_the_category();
    14.                 foreach($categories as $category) {
    15.                     array_push($cat_ID,$category->cat_ID);
    16.                 }
    17.              
    18.                 $related_posts = new WP_Query( apply_filters(
    19.                 'rowling_related_posts_args', array(
    20.                         'posts_per_page'        =>    $number_of_posts,
    21.                         'post_status'            =>    'publish',
    22.                         'category__in'            =>    $cat_ID,
    23.                         'post__not_in'            =>    array($post->ID),
    24.                         'meta_key'                =>    '_thumbnail_id',
    25.                         'ignore_sticky_posts'    =>    true
    26.                 ) ) );
    27.              
    28.                 if ($related_posts->have_posts()) :
    29.                  
    30.                     while ( $related_posts->have_posts() ) : $related_posts->the_post(); ?>
    31.                  
    32.                     <?php global $post; ?>
    33.              
    34.                     <a class="related-post" href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
    35.                      
    36.                         <?php if ( has_post_thumbnail() ) : ?>
    37.                          
    38.                             <?php the_post_thumbnail('post-image-thumb') ?>
    39.                          
    40.                         <?php endif; ?>
    41.                      
    42.                         <p class="category">
    43.                             <?php
    44.                                 $category = get_the_category();
    45.                                 echo $category[0]->cat_name;
    46.                             ?>
    47.                         </p>
    48.              
    49.                         <h3 class="title"><?php the_title(); ?></h3>
    50.                          
    51.                     </a>
    52.              
    53.                 <?php endwhile; ?>
    54.                  
    55.             <?php else: // If there are no other posts in the post categories, get random posts ?>
    56.          
    57.                 <?php
    58.                      
    59.                     $related_posts = new WP_Query( apply_filters(
    60.                     'rowling_related_posts_args', array(
    61.                             'posts_per_page'        =>    $number_of_posts,
    62.                             'post_status'            =>    'publish',
    63.                             'orderby'                =>    'rand',
    64.                             'post__not_in'            =>    array($post->ID),
    65.                             'meta_key'                =>    '_thumbnail_id',
    66.                             'ignore_sticky_posts'    =>    true
    67.                     ) ) );
    68.                  
    69.                     if ($related_posts->have_posts()) :
    70.                      
    71.                         while ( $related_posts->have_posts() ) : $related_posts->the_post(); ?>
    72.                      
    73.                         <?php global $post; ?>
    74.                  
    75.                         <a class="related-post" href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
    76.                          
    77.                             <?php if ( has_post_thumbnail() ) : ?>
    78.                              
    79.                                 <?php the_post_thumbnail('post-image-thumb') ?>
    80.                              
    81.                             <?php endif; ?>
    82.                          
    83.                             <p class="category">
    84.                                 <?php
    85.                                     $category = get_the_category();
    86.                                     echo $category[0]->cat_name;
    87.                                 ?>
    88.                             </p>
    89.                  
    90.                             <h3 class="title"><?php the_title(); ?></h3>
    91.                              
    92.                         </a>
    93.                  
    94.                     <?php endwhile; ?>
    95.                  
    96.                 <?php endif; ?>
    97.      
    98.             <?php endif; ?>
    99.      
    100.         </div> <!-- /row -->
    101.      
    102.         <?php wp_reset_query(); ?>
    103.  
    104.     </div> <!-- /related-posts -->
    105.  
    106.     <?php
    107. }
    А вот этот код из single.php
    Код (Text):
    1. <?php rowling_related_posts('3'); // Number of related posts to display ?>
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.115
    Симпатии:
    1.244
    Адрес:
    там-сям
  3. all003

    all003 Новичок

    С нами с:
    1 май 2016
    Сообщения:
    4
    Симпатии:
    0
    Не могли бы вы написать, что на что нужно заменить. Единственное что я смог сделать это чтобы миниатюры отображались рандомно, добавив
    Код (Text):
    1. 'orderby'=>rand,
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.115
    Симпатии:
    1.244
    Адрес:
    там-сям
    так я и написал
     
  5. all003

    all003 Новичок

    С нами с:
    1 май 2016
    Сообщения:
    4
    Симпатии:
    0
    Не могли бы вы мне пояснить, что конкретно вы мне предлагаете. Воспользоваться инструкцией, которая находятся по ссылке или заменить 'category__in'=>$cat_ID на 'tag__in' => $tag_ids? Первый вариант мне не подходит, а второй просто так не работает.
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.115
    Симпатии:
    1.244
    Адрес:
    там-сям
    Если коротко: параметр фильтра tag__in это то, что тебе нужно. Пример по ссылке.
    Что убрать, а что оставить -- сам разберешся. Удачи!
     
  7. all003

    all003 Новичок

    С нами с:
    1 май 2016
    Сообщения:
    4
    Симпатии:
    0
    Сделал так, вроде как работает
    Код (Text):
    1. function rowling_related_posts($number_of_posts) { ?>
    2.    
    3.     <div class="related-posts">
    4.        
    5.         <p class="related-posts-title"><?php _e('Похожие статьи','rowling'); ?> &rarr;</p>
    6.        
    7.         <div class="row">
    8.                        
    9.             <?php // Check for posts in the same category
    10.                    
    11.                 global $post;
    12.                 $tag_ids = array();
    13.                                 $tags = wp_get_post_tags($post->ID);
    14.                 foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
    15.                
    16.                 $related_posts = new WP_Query( apply_filters(
    17.                 'rowling_related_posts_args', array(
    18.                         'posts_per_page'        =>    $number_of_posts,
    19.                         'post_status'            =>    'publish',
    20.                         'tag__in'                       =>      $tag_ids,
    21.                                         'orderby'            =>    'rand',
    22.                         'post__not_in'            =>    array($post->ID),
    23.                         'meta_key'                =>    '_thumbnail_id',
    24.                         'ignore_sticky_posts'            =>    true
    25.                 ) ) );
    26.                
    27.                 if ($related_posts->have_posts()) :
    28.                    
    29.                     while ( $related_posts->have_posts() ) : $related_posts->the_post(); ?>
    30.                    
    31.                     <?php global $post; ?>
    32.                
    33.                     <a class="related-post" href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
    34.                        
    35.                         <?php if ( has_post_thumbnail() ) : ?>
    36.                            
    37.                             <?php the_post_thumbnail('post-image-thumb') ?>
    38.                            
    39.                         <?php endif; ?>
    40.                
    41.                         <p class="title"><?php the_title(); ?></p>
    42.                            
    43.                     </a>
    44.                
    45.                 <?php endwhile; ?>
    46.                    
    47.             <?php else: // If there are no other posts in the post categories, get random posts ?>
    48.            
    49.                 <?php
    50.                        
    51.                     $related_posts = new WP_Query( apply_filters(
    52.                     'rowling_related_posts_args', array(
    53.                             'posts_per_page'        =>    $number_of_posts,
    54.                             'post_status'            =>    'publish',
    55.                             'orderby'            =>    'rand',
    56.                             'post__not_in'            =>    array($post->ID),
    57.                         'meta_key'                =>    '_thumbnail_id',
    58.                             'ignore_sticky_posts'            =>    true
    59.                     ) ) );
    60.                    
    61.                     if ($related_posts->have_posts()) :
    62.                        
    63.                         while ( $related_posts->have_posts() ) : $related_posts->the_post(); ?>
    64.                        
    65.                         <?php global $post; ?>
    66.                    
    67.                         <a class="related-post" href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
    68.                            
    69.                             <?php if ( has_post_thumbnail() ) : ?>
    70.                                
    71.                                 <?php the_post_thumbnail('post-image-thumb') ?>
    72.                                
    73.                             <?php endif; ?>
    74.                    
    75.                             <p class="title"><?php the_title(); ?></p>
    76.                                
    77.                         </a>
    78.                    
    79.                     <?php endwhile; ?>
    80.                    
    81.                 <?php endif; ?>
    82.        
    83.             <?php endif; ?>
    84.        
    85.         </div> <!-- /row -->
    86.        
    87.         <?php wp_reset_query(); ?>
    88.  
    89.     </div> <!-- /related-posts -->
    90.    
    91.     <?php
    92. }