1. 首页
  2. SEO建站分享

如何调用wordpress相关文章

很多seoer都知道相关文章对一个网站优化的重要性,就拿苏州seo这个网站来说侧边栏调用的是热门文章和随机文章。其实就是采用的wordpress相关文章的调用,对于现在的草根站长来说制作一个符合自己喜欢的侧边栏还是有一定的难度的。今天夏涛给大家总结了三个wordpress相关文章调用的方法:

方法一:文章根据标签相关(用SQL获取)

相关原理:首先获取改篇文章的所有标签,接着获取这些标签下的 n 篇文章,那么这 n 篇文章就是与该文章相关的文章了。现在可以见到的WordPress相关文章插件都是使用的这个方法。这里我们通过SQL语句来直接读取数据库,随机获取 10篇相关的文章记录。下面是实现的代码:

<h3>该文章的相关文章</h3>
<ul>
<?php
$all_tags = wp_get_post_tags($post->ID);
if ($all_tags) {
$tag_list = ”;
foreach ($all_tags as $tag)
{
// 获取标签列表
$tag_list .= $tag->term_id.’,’;
}
$tag_list = substr($tag_list, 0, strlen($tag_list)-1);

$related_posts = $wpdb->get_results(”
SELECT post_title, ID
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 10″);
// 以上代码中的 10 为限制只获取10篇相关文章
// 通过修改数字 10,可修改你想要的文章数量

if ( $related_posts ) {
foreach ($related_posts as $related_post) {
?>
<li><a href=”<?php echo get_permalink($related_post->ID); ?>” rel=”bookmark” title=”<?php echo $related_post->post_title; ?>”>
<?php echo $related_post->post_title; ?></a></li>
<?php } } else { ?>
<li>暂无相关文章</li>
<?php } } ?>
</ul>

方法二:根据文章的分类获取相关文章

本方法是通过获取该文章的分类id,然后获取该分类下的文章,来达到获取相关文章的目的。我们用SQL语句来直接读取数据库,随机获取10篇相关文章记录。下面是实现的代码:

<h3>相关阅读推荐</h3>
<ul>
<?php
$data = wp_get_post_categories($post->ID);
if ($data) {

$related = $wpdb->get_results(”
SELECT post_title, ID
FROM {$wpdb->prefix}posts, {$wpdb->prefix}term_relationships, {$wpdb->prefix}term_taxonomy
WHERE {$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id
AND {$wpdb->prefix}term_taxonomy.taxonomy = ‘category’
AND {$wpdb->prefix}term_taxonomy.term_taxonomy_id = {$wpdb->prefix}term_relationships.term_taxonomy_id
AND {$wpdb->prefix}posts.post_status = ‘publish’
AND {$wpdb->prefix}posts.post_type = ‘post’
AND {$wpdb->prefix}term_taxonomy.term_id = ‘” . $data[0] . “‘
AND {$wpdb->prefix}posts.ID != ‘” . $post->ID . “‘
ORDER BY RAND()
LIMIT 10″);

if ( $related ) {
foreach ($related as $related_post) {
?>
<li><a href=”<?php echo get_permalink($related_post->ID); ?>” rel=”bookmark” title=”<?php echo $related_post->post_title; ?>”>
<?php echo $related_post->post_title; ?></a></li>
<?php } } else { ?>
<li>暂无相关文章</li>
<?php } }?>
</ul>

方法三:根据作者相关获取文章(这个比较少用,因为基本都是我们自己发的)

该方法是获取该文章作者的其他文章来充当相关文章,代码如下:

<h3>该作者的相关文章</h3>
<ul>
<?php
$post_author = get_the_author_meta( ‘user_login’ );
$args = array(
‘author_name’ => $post_author,
‘post__not_in’ => array($post->ID),
‘showposts’ => 10, // 显示相关文章数量
‘orderby’ => date, // 按时间排序
‘caller_get_posts’ => 1
);
query_posts($args);

if (have_posts()) :
while (have_posts()) : the_post(); update_post_caches($posts); ?>
<li><a href=”<?php the_permalink(); ?>” rel=”bookmark” title=”<?php the_title_attribute(); ?>”><?php the_title(); ?></a></li>
<?php endwhile; else : ?>
<li>暂无相关文章</li>
<?php endif; wp_reset_query(); ?>
</ul>

以上代码亲测可以使用,如有问题请下方留言。

原创文章,作者:夏涛,如若转载,请注明出处:http://www.xiataoseo.com/38.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

联系我们

15250040799

在线咨询:点击这里给我发消息

邮件:326605428@qq.com

工作时间:周一至周日,9:30-18:30

QR code