Moke|墨客

 找回密码
 立即注册
搜索
查看: 6470|回复: 0

WordPress教程:相关文章中去除当前文章ID方法

[复制链接]

3636

主题

0

回帖

3681

积分

超级版主

Rank: 8Rank: 8

积分
3681
发表于 2016-5-12 18:19:10 | 显示全部楼层 |阅读模式






                通常我们的wordpress都是调用全站的相关文章,当然也会包括当前文章,如何才能调用相关文章的时候去除当前文章呢?方法并不难,在调用函数里添加一句 post__not_in 即可实现,这个函数不要做太多解释,按字面就可以理解了。
具体实施方法如下:
<?php
$backup = $post;
$tags = wp_get_post_tags($post->ID);
$tagIDs = array();
if ($tags) {
$tagcount = count($tags);
for ($i = 0; $i < $tagcount; $i++) {
$tagIDs[$i] = $tags[$i]->term_id;
}
$args=array(
&lsquo;tag__in&rsquo; => $tagIDs,
&lsquo;post__not_in&rsquo; => array($post->ID), //去除当前文章ID
&lsquo;showposts&rsquo; =>10,
&lsquo;caller_get_posts&rsquo;=>1
);
$my_query = new WP_Query($args); ?>
<div>
<div>相关文章</div>
<ul>
<?php if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<li><a href=&rdquo;<?php the_permalink() ?>&rdquo; rel=&rdquo;bookmark&rdquo; target=&rdquo;_self&rdquo; title=&rdquo;<?php the_title(); ?>&rdquo;><?php the_title(); ?></a></li>
<?php endwhile;
} else { ?>
<?php $recent=new WP_Query( &ldquo;showposts=10&caller_get_posts=1&orderby=rand&rdquo;); while($recent->have_posts()) : $recent->the_post();?>
<li><a href=&rdquo;<?php the_permalink() ?>&rdquo; rel=&rdquo;bookmark&rdquo; target=&rdquo;_self&rdquo; title=&rdquo;<?php the_title(); ?>&rdquo;><?php the_title(); ?></a></li>
<?php endwhile;    ?>
<?php } ?>
</ul>
</div>
<?php } else { ?>
<div>
<div>随机文章</div>
<ul>
<?php $recent=new WP_Query( &ldquo;showposts=10&caller_get_posts=1&orderby=rand&rdquo;); while($recent->have_posts()) : $recent->the_post();?>
<li><a href=&rdquo;<?php the_permalink() ?>&rdquo; rel=&rdquo;bookmark&rdquo; target=&rdquo;_self&rdquo; title=&rdquo;<?php the_title(); ?>&rdquo;><?php the_title(); ?></a></li>
<?php endwhile;    ?>
</ul>
</div>
<?php } ?>
<?php $post = $backup; wp_reset_query(); ?>
这里我还用到了 wp_reset_query() ,这个是重置函数,不多做解释,可以用也可以不用。
本文地址:http://www.wpued.com/7532.html
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

 

 

快速回复 返回顶部 返回列表