WordPress获得当前或指定分类目录ID以及TAG标签ID的方法

摘要WordPress获得当前或指定分类目录ID以及TAG标签ID,可以通过WordPress管理后台、sql语句、内置函数、结合内置函数自定义函数等方法来实现,推荐结合内置函数自定义函数的方法,非常灵活方便。

刚接触WordPress不久,应本博需求,需要获取当前或指定分类目录ID,以及当前TAG标签ID。查阅了大量资料,折腾了半天,总算搞定了。

1)WordPress获得指定分类目录ID或指定TAG标签ID

a)可以通过管理后台的简易操作实现:

管理后台->分类目录/TAG标签->鼠标移到某个分类/TAG标签的“编辑”按钮上,在浏览器状态会出现一串地址,其中tag_ID=后面的数字就是当前分类目录或TAG标签的ID;

b)可以通过sql语句实现,你只需要在phpmyadmin的控制面板中执行如下sql语句:

select term_id from wp_terms where name = '你的分类或TAG名称'

其中,wp是你的WordPress数据表前缀,请作相应替换;term_id就是你想要的分类目录ID或TAG标签ID。

2)WordPress获得当前分类目录ID或当前TAG标签ID

a)可以通过WordPress内置函数实现,只需要将以下PHP代码加入你的模板相应位置:

<?php echo the_category_ID(); ?>

注意:你需要的这个分类ID如果是以参数传递的话,最好加上false参数,如下:

<?php echo the_category_ID(false); ?>

我用的是WordPress 3.1版本,这种获得当前分类目录ID的方法无效,只能随机获得分类目录ID。这可能和我的固定链接设置有关系,期待高人指点。另外,当前TAG标签ID无法直接通过WordPress内置函数获得。

b)此方法经测试是切实可行的,推荐使用,实现原理是结合WordPress内置函数来自定义函数,非常灵活方便:

/** get Current Category ID . source: www.xp-sem.com . */
function get_current_category_id() {
 $current_category = single_cat_title('', false);//获得当前分类目录名称
 return get_cat_ID($current_category);//获得当前分类目录ID
}

/** get Current Tag ID . source: www.xp-sem.com . */
function get_current_tag_id() {
 $current_tag = single_tag_title('', false);//获得当前TAG标签名称
 $tags = get_tags();//获得所有TAG标签信息的数组
   foreach($tags as $tag) {
  if($tag->name == $current_tag) return $tag->term_id; //获得当前TAG标签ID,其中term_id就是tag ID
 }
}

将上面两个函数拷贝至你的WordPress主题目录的functions.php中即可。

使用方法:在你的WordPress主题模板的相应位置加上如下代码:

获得当前分类目录ID:

<?php echo get_current_category_id(); ?>

获得当前TAG标签ID:

<?php echo get_current_tag_id(); ?>

当然,你也可以利用这两个函数做其它的事情,比如调用当前分类目录或TAG标签下的热门文章等等,之后会在我的博客中更新这方面的文章的,请关注!

目前留言:4   其中:访客:4   博主:0

  1. Charles

    the_category_ID在新版WordPress中已被移除了:
    http://codex.wordpress.org/Function_Reference/the_category_ID

  2. 小拼

    @Charles
    嗯嗯,多谢反馈:-)

  3. lft59598

    我需要使用标签实现一种功能,只调用指定ID的标签出来,并且把它们像导航一样排列起来,这样就可以仿导航栏来使用标签,用这种方法来代替分类,而且又不用设置更多的分类出来。
    请问这个可以实现吗?

  4. 门软

    @lft59598
    我也想这样,苦于不会写代码。。。

评论加载中...

给我留言

图片 表情