填写您的邮件地址,订阅我们的精彩内容:

wordpress在文章循环中获取对应的分类ID

984

在wordpress数据库中文章和分类的数据关系放在_term_relationship表中,在_posts表中完全找不到文章对应的分类,这就让获取某篇文章对应的分类信息困难万分。

在主页中用have_post:the_post来得到文章列表,而函数直接输出(echo)内容,也就让我们自己无法调用了。为了在这个部分获得对应分类的id号,我写了下面函数,以及在文章列表循环中如何获得的实例。

首先,写一个调用分类ID的函数放到主题目录的functions.php中:

function get_post_category_id($post_ID){
	global $wpdb;
	$sql=”SELECT `term_taxonomy_id` FROM $wpdb->term_relationships WHERE `object_id`=’”.$post_ID.”‘;”;
	$cat_id=$wpdb->get_results($sql);
	foreach($cat_id as $catId){
		$output=$catId->term_taxonomy_id;
	}
	return($output);
}

然后再主页循环内调用,调用时先获取循环到这里的文章的ID,然后将这个ID带入上面函数,就可以获得了。调用如下:

$this_post_id=$post->ID;
$cat_id=get_post_category_id($this_post_id);
switch($cat_id){
	case ’35′:echo “第一张图”;break;
	case ’8′:echo “第二张图”;break;
	default:echo “默认图”;
}

上面调用中$post是全局函数,可以直接使用,$this_post_id=$post->ID;即获取该文章的ID的方法。

比较有趣的是,知道文章ID,又可以用$post=get_post(post_id);来重新获得文章。

而实际上,wordpress也提供了获取分类的函数,即get_the_category();其用法是

$cats=get_the_category();
foreach($cats as $cat) echo $cat->cat_ID;

该函数似乎还支持直接用文章ID作为参数进行随意调用,未经检验,希望已经测试过的朋友可以与乌徒帮友们一起分享。

将上面这段小代码放置文章循环内,可以获得该分类的ID,wordpress内置函数有很多好玩的地方,自己慢慢琢磨,到网上找点资料,便能慢慢上手。您可以关注乌徒帮,乌徒帮将逐渐讲解wordpress核心函数。

下面我简单说几句