自动动手,Wordpress实现相关文章 – 找啊xp
找啊xp

自动动手,WordPress实现相关文章

WordPress很多插件可以实现相关文章的功能,插件的优点是配置简单,但是可能会对网站的速度造成一些小的影响,所以很多人还是比较喜欢用代码实现需要的功能。

本文详细介绍了使用SQL代码实现Wordpress相关文章的方法(PS:建博客,首选Wordpress;选空间,首选Godaddy,推荐使用godaddy 优惠码)。

首先获取文章的所有标签,接着获取这些标签下的 n 篇文章,那么这 n 篇文章就是与该文章相关的文章了。现在可以见到的WordPress相关文章插件都是使用的这个方法。

下面是实现的代码。

 

global $ post, $ wpdb;
$ post_tags = wp_get_post_tags($ post->ID);
if ($ post_tags) {
$ tag_list = \’\’;
foreach ($ post_tags as $ tag)
{
// 获取标签列表
$ tag_list .= $ tag->term_id.\’,\’;
}
$ tag_list = substr ($ tag_list, 0, strlen ($ tag_list)-1);

$ related_posts = $ wpdb->get_results("
SELECT DISTINCT ID, post_title
FROM {$ wpdb->prefix}posts, {$ wpdb->prefix}term_relationships, {$ wpdb->prefix}term_taxonomy
WHERE {$ wpdb->prefix}term_taxonomy.term_taxonomy_id = {$ wpdb->prefix}term_relationships.term_taxonomy_id
AND ID = object_id
AND taxonomy = \’post_tag\’
AND post_status = \’publish\’
AND post_type = \’post\’
AND term_id IN (" . $ tag_list . ")
AND ID != \’" . $ post->ID . "\’
ORDER BY RAND()
LIMIT 6");
// 以上代码中的 6 为限制只获取6篇相关文章
// 通过修改数字 6,可修改你想要的文章数量

if ( $ related_posts ) {
foreach ($ related_posts as $ related_post) {
?>

  • echo $ related_post->post_title; ?>

} } else { ?>

  • 暂无相关文章

} } ?>

 

获取文章的时候是以SQL语句来直接读取数据库,从而随机获取6篇相关文章记录,而不是WordPress的函数query_posts()。这个的效率比用WP自身的函数要快很多。

 

推荐使用,并感谢阅读,希望对你有帮助!

备注:转载请注明来自静湖一筑