WordPress 函数get_term_by()的用法

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

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

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

但在循环中需要使用分类的ID去获取分类信息。后来在 许小珂博客 中查到了 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学习还是很方便,大部分问题都可以在搜索引擎中找到方法去解决,当然了由于也是逐步学习阶段,可能代码写的不是很好很多瑕疵,如有更好的办法欢迎一起讨论。

0

评论0

请先
显示验证码
没有账号?注册  忘记密码?