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. |