Two ways to add related articles in WordPress without plugins

Two ways to add related articles in WordPress without plugins


The power and ease of use of WordPress lies in its countless themes and plug-ins, but too many plug-ins will affect the speed and security of the website. If you can use simple code to achieve the required functions, it is better to use code.
At the end of each article, displaying related articles can better retain customers.
Here are two methods:

The first

In the functions.php file of the theme you are using, add the following code

function wp_get_related_posts()<br>{<br>global $wpdb, $post,$table_prefix;<br>$limit = 10; //How Many Related Posts Displayed<br>if(!$post->ID){return;}<br>$now = current_time('mysql', 1);<br>$tags = wp_get_post_tags($post->ID);<br>$taglist = “'” . $tags[0]->term_id. “'”;<br>$tagcount = count($tags);<br>if ($tagcount > 1) {<br>for ($i = 1; $i < $tagcount; $i++) {<br>$taglist = $taglist . “, '” . $tags[$i]->term_id . “'”;<br>}<br>}<br>$limitclause = “LIMIT $limit”;<br>$q = “SELECT p.ID, p.post_title, p.post_date, p.comment_count, count(t_r.object_id) as cnt FROM $wpdb->term_taxonomy t_t, $wpdb->term_relationships t_r, $wpdb->posts p WHERE t_t.taxonomy ='post_tag' AND t_t.term_taxonomy_id = t_r.term_taxonomy_id AND t_r.object_id = p.ID AND (t_t.term_id IN ($taglist)) AND p.ID != $post->ID AND p.post_status = 'publish' AND p.post_date_gmt < '$now' GROUP BY t_r.object_id ORDER BY cnt DESC, p.post_date_gmt DESC $limitclause;”;<br>$related_posts = $wpdb->get_results($q);<br>$output = “”;<br>if (!$related_posts)<br>{<br>$output .= '<li>No Related Posts</li>';<br>}<br>foreach ($related_posts as $related_post )<br>{<br>$dateformat = get_option('date_format');<br>$output .= '<li>';<br>$output .= '<a href=”'.get_permalink($related_post->ID).'” title=”'.wptexturize($related_post->post_title).' ('.mysql2date($dateformat, $related_post->post_date).')”>'.wptexturize($related_post->post_title).'</a> ('.$related_post->comment_count .')';<br>$output .= '</li>';<br>}<br>$output = '<h3>Related Posts</h3><ul>' . $output . '</ul>';<br>return $output;<br>}<br>function wp_related_posts_attach($content)<br>{<br>if (is_single()||is_feed())<br>{<br>$output = wp_get_related_posts();<br>$content = $content . $output;<br>}<br>return $content;<br>}<br>add_filter('the_content', 'wp_related_posts_attach',100);

The second

Add it to the single.php of the theme you are using, usually after <?php the_content(); ?>

<h3>Related Posts</h3><br><ul><br><?php<br>$tags = wp_get_post_tags($post->ID);<br>if ($tags) {<br>$first_tag = $tags[0]->term_id;<br>$args=array(<br>'tag__in' => array($first_tag),<br>'post__not_in' => array($post->ID),<br>'showposts'=>10,//Display 10 related posts<br>'caller_get_posts'=>1<br>);<br>$my_query = new WP_Query($args);<br>if( $my_query->have_posts() ) {<br>while ($my_query->have_posts()) : $my_query->the_post(); ?><br><li><a href=”<?php the_permalink() ?>” rel=”bookmark” title=”<?phpthe_title_attribute(); ?>”><?php the_title();?> <?php comments_number(' ','(1)','(%)'); ?></a></li><br><?php<br>endwhile;<br>}<br>}<br>wp_reset_query();<br>?><br></ul>

The second method used directly by Aiba.

<<:  $2.5/month/256M memory/10G space/500G traffic/OpenVZ/VPS:BlueVM

>>:  Free domain name that supports DNS and domain name redirection: net.tf

Recommend

Snoork Hosting: $4.99/month/2GB RAM/40GB storage/1TB bandwidth/2 IPV4/OpenVZ

Snoork Hosting is an American hosting provider th...

KeCloud: $13.5/month/1GB memory/10GB SSD space/1TB traffic/1Gbps/KVM/San Jose CN2 GIA

【#New product launch】 USA 2 – San Jose direct rou...

(MT)MediaTemple host lifetime discount code

Registration code for lifetime 20% discount: reta...