# WordPress 函数get_term_by()的用法

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/2288.html | 发布：2021-11-26 | 更新：2021-11-26 | 分类：建站教程

今天在学习制作WordPress主题的时候，遇到了一个麻烦，具体如下：

 

我在后台使用cmb2工具创建了一个主题设置项，可选择首页显示的分类，分类下显示的文章数量等等。

 

但在写循环输出的时候遇到一个问题，后台为了用户方便使用的是勾选分类的形式，存储在数据库中是获取被勾选分类的别名排列成一个数组。

 

但在循环中需要使用分类的ID去获取分类信息。后来在 [许小珂博客](https://www.xuxiaoke.com/wpfunc/145.html) 中查到了 get_term_by() 函数。

 

## 函数介绍

 

get_term_by()函数主要用来快速查找某一个分类的名称、别名和id的值，只要提供别名、名称或编号其中一个，就可以获取它其余的信息，省时省力又精确。

 

## 函数解析

 

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

 
 
- $field——id、slug、name 必填项 
- $value—-$field的值 必填项 
- $taxonomy—-自定义分类方式的名称 必填项 

 

## 使用介绍

 

```
根据分类名称获取分类名称值为Theme的别名
<?php 
$item = get_term_by('name','Theme','products');
echo $item->slug;
?>

根据id获取id值为21的分类的别名 
<?php 
$item = get_term_by('id','21','products'); 
echo $item->slug; 
?>

根据别名获取别名值为theme的分类名称
<?php 
$item = get_term_by('slug','theme','products');
echo $item->name;
?>

根据id获取id值为21的分类的分类名称
<?php
$item = get_term_by('id','21','products');
echo $item->name;
?>

根据别名获取别名值为theme的分类的id
<?php 
$item = get_term_by('slug','theme','products'); 
echo $item->term_id; 
?>

根据分类名称获取分类名称值为Theme的分类的id
<?php
$item = get_term_by('name','Theme','products');
echo $item->term_id;
?>
```

 

以上是函数的介绍和具体使用方法，而我遇到的问题就是用这个函数去解决的，如下

 

```
<?php
shop_cat 和shop_num 是获取到后台勾选的分类和填写的文章数量
    $shop_cat = mfisp_index_shop('shop_cat');
    $shop_num = mfisp_index_shop('shop_num');

由于后台勾选的分类是多项的，所以直接遍历将所有获取分类别名都转成分类ID
    $shop_ids = array();
    foreach($shop_cat as $v){
    	$shops = get_term_by('slug', $v, 'servertype');
    	$shop_ids[] = $shops->term_id;
    }
```

 

wordpress学习还是很方便，大部分问题都可以在搜索引擎中找到方法去解决，当然了由于也是逐步学习阶段，可能代码写的不是很好很多瑕疵，如有更好的办法欢迎一起讨论。

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
