sierre

Related Posts - Based on Category

May 21st, 2022 (edited)
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.69 KB | None | 0 0
  1. <div class="related-posts-after-content">
  2.  
  3.     <?php
  4.         $related_articles = array();
  5.         $categories = get_the_category();
  6.  
  7.         if($categories) {
  8.              $category_id = $categories[0]->term_id;
  9.  
  10.              if(count($categories) > 1 && class_exists('WPSEO_Primary_Term')) {
  11.                     $primary_term = new WPSEO_Primary_Term('category', get_the_id());
  12.                     $category_id  = $primary_term->get_primary_term();
  13.              }
  14.  
  15.              $related_articles = get_posts(array(
  16.                     'category'    => $category_id,
  17.                     'exclude'     => $post->ID,
  18.                     'numberposts' => 3,
  19.                     'order'       => 'RAND',
  20.                     'orderby'     => 'date',
  21.                     'post_status' => 'published',
  22.                     'post_type'   => 'post'
  23.              ));
  24.         }
  25.     ?>
  26.    
  27.     <?php if($related_articles): ?>
  28.    
  29.         <h3>Like this blog post?  You'll love these...</h3>
  30.        
  31.      <section class="related-articles">
  32.                 <?php foreach($related_articles as $post): ?>
  33.                      <?php setup_postdata($post); ?>
  34.                      <article>
  35.                             <?php if ( has_post_thumbnail() ) {
  36.                                 the_post_thumbnail(array(200,150));
  37.                             } else { ?>
  38.                             <img src="<?php bloginfo('template_directory'); ?>/images/default-image.jpg" alt="<?php the_title(); ?>" />
  39.                             <?php } ?>
  40.                             <br>
  41.                             <h4><a href="<? the_permalink()?>"><?php the_title(); ?></a></h4>
  42.                      </article>
  43.                 <?php endforeach; ?>
  44.                 <?php wp_reset_postdata(); ?>
  45.          </section>
  46. <?php endif; ?>
  47.  
  48. </div>
  49.  
  50. <style>
  51. .related-posts-after-content {padding-top:20px;}
  52.  
  53. .related-posts-after-content article {
  54.     display:inline-grid;
  55.     width: 32%;
  56.     text-align:center;
  57. }
  58.  
  59. .related-posts-after-content article img {
  60.     margin:auto;
  61. }
  62.  
  63. .related-posts-after-content h3{
  64.     font-family: Didot, serif;
  65.     font-size: 30px;
  66.     letter-spacing: 1px;
  67. }
  68. </style>
Add Comment
Please, Sign In to add comment