首页 > CMS知识 > 正文

WordPress相关文章通过与标签相关,SQL获取的代码实现方法

2022 年 9 月 7 日   来源:帮建站   浏览量: 75

通过与标签相关,SQL获取

获取相关文章的原理与方法一相似,不过在获取文章的时候是以SQL语句来直接读取数据库,从而随机获取6篇相关文章记录,而不是WordPress的函数query_posts().

<ul class=”dt-bottom”>

<?php
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) {
?>
<li>
<div class=”dt-ul-tt txt-elise”><a href=”<?php echo get_permalink($related_post->ID); ?>” ><?php echo $related_post->post_title; ?></a></div>
<div class=”dt-ul-date”><?php the_time(‘Y 年 n 月 j 日’); ?></div>
</li>
<?php }
}
else {
echo ‘<li>暂无相关文章</li>’;
}
}
else {
echo ‘<li>暂无相关文章</li>’;
}
?>
</ul>

温馨提示:亲测可用



首页 在线 手机