A-A+
wordpress利用query_posts函数来做指定标签过滤或显示内容
query_posts 函数能做的事情有许多,最主要的一个功能就是以标签 tag 为条件来输出或者过滤 wordpress 文章内容,比如包含某个标签的内容我们不想显示,就可以用这个函数了,再或者我们只想显示某个标签的内容,也可以使用这个函数来进行筛选,下面夏日博客就来讲一下 wordpress 如何通过 query_posts 函数来过滤包含指定标签的文章.
一、过滤包含指定标签 tag 的文章,实现代码如下:
function get_tag_id_by_name($tag_name) { global $wpdb; return $wpdb->get_var("SELECT term_id FROM ".$wpdb->terms." WHERE `name` = '".$tag_name."'"); }
将以上的代码添加到主题 functions.php 文件中,然后在需要过滤包含指定标签文章的页面找到如下的主循环代码:
<?php while (have_posts()) : the_post(); ?> //正常的内容循环 <?php endwhile; ?>
将其修改为如下代码即可实现通过标签 tag 来过滤特定的内容:
<?php query_posts( array( 'tag__not_in' => array(get_tag_id_by_name('标签名')), ); while (have_posts()) : the_post(); ?> //正常的内容循环 <?php endwhile; wp_reset_query(); ?>
二、如何调用包含某标签的文章
同样的将上面“过滤包含指定标签 tag 文章”的代码放入到主题 functions.php 文件中,然后找到主循环代码:
<?php while (have_posts()) : the_post(); ?> //正常的内容循环 <?php endwhile; ?>
将其修改为:
<?php query_posts('tag=标签名'); while (have_posts()) : the_post(); ?> //正常的内容循环 <?php endwhile; wp_reset_query(); ?>
即可,这样就实现了,通过 query_posts 函数来调用包含某标签的文章了。