北极寒流 » 网络资源 » wordpress根据标签名(tag)获取tag id以及根据分类名获取分类id - 2015.11.06

wordpress根据标签名(tag)获取tag id以及根据分类名获取分类id

有时候出于需要,希望通过已知的标签名(tag)来取得tag id,有了tag id就好办了,通过id就可以调出许多内容,下面的代码来国外网站,测试有效。

通过标签名(tag)获取tag id

 

function get_tag_ID($tag_name) {
$tag = get_term_by('name', $tag_name, 'post_tag');
if ($tag) {
return $tag->term_id;
} else {
return 0;
}
}

延伸用法实例

...........
if(is_category()){
$cat_name = single_tag_title('',false);
$cat_ID = get_cat_ID($cat_name);
$cat = get_category($cat_ID);
echo $name=$cat->slug;
}
else if(is_tag()){ //如果是标签页
$tag_name=single_tag_title('',false); //获得标签名传入变量 $tag_name
$tag_slug=get_term_by('name',$tag_name,'post_tag'); //通过标签名 $tag_name 获取与之相关的参数传入变量 $tag_slug
echo $name=$tag_slug->slug; //将变量 $tag_slug 中的 slug 传入变量 $name
}
............
if(have_posts()) :
$args = array($type => $name,'showposts'=>$prePage,'paged' => $paged);
query_posts($args);
while (have_posts()) : the_post();
.............

附:get term by 函数用法说明:

    <?php get_term_by( $field, $value, $taxonomy, $output, $filter ) ?>

参数说明:

  • $field:(字符串)(必需) ‘slug‘, ‘name‘, 或者’id‘,默认:’id‘
  • $value:(字符串|整数)(必需)指定字段的值,默认:None
  • $taxonomy:(字符串)(必需)分类名称,category, post_tag, 或者自定义的名称,默认:None
  • $output:(字符串)(可选)指定返回的类型, OBJECT, ARRAY_A, or ARRAY_N,默认:OBJECT
  • $filter:(字符串)(可选)指定过滤器,默认:‘raw‘

返回值:
(混合) 数据库中 term 的行记录。 $taxonomy 不存在或 $term 没有找到时,返回 false,返回的字段列表:

  • term_id
  • name
  • slug
  • term_group
  • term_taxonomy_id
  • taxonomy
  • description
  • parent
  • count

例如利用已知的 name 得到返回值为 slug ,那么代码可以这样写:

get_term_by('name', $tag_name, post_tag); //其中 $tag_name 为传入的变量

通过标签名(tag)获取tag id的另外一种方法(函数是放在WordPress主题目录的functions.php中的)

//获得当前TAG标签ID,
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
}
}

用法 <?php echo get_current_tag_id(); ?>
也可以直接将函数的返回值赋于一个变量,如下:

<?php $tag = get_current_tag_id(); ?>

就可以在需要的地方直接调用这个 $tag 变量就可以了。
根据分类名获取分类id

function get_current_category_id() {
$current_category = single_cat_title('', false);//获得当前分类目录名称
return get_cat_ID($current_category);//获得当前分类目录ID
}

用法 <?php echo get_current_category_id(); ?>

当然,你也可以利用这两个函数做其它的事情,比如调用当前分类目录或TAG标签下的热门文章等等

更新说明,今天无意间在某网站看到,其实要在非loop中获取id用get_queried_object_id();函数即可。示例

$tag_name = single_tag_title('',false);
$tag_id = get_queried_object_id();
echo '<h3 class="title"><a href="'.get_tag_link($tag_id).'" title="'.$tag_name.'">'.$tag_name.'</a></h3>';
分类等页面也可以使用。
06

wordpress根据标签名(tag)获取tag id以及根据分类名获取分类id

分享到:

最受欢迎的