【发布时间】:2026-01-16 07:00:02
【问题描述】:
我创建了将用户数据存储在 db 表中的自定义插件。表单有下拉列表,其中包含分类 id 作为值。
表单正在工作,分类 ID 和其他用户数据正在插入数据库中。
在 wp 管理面板中,我显示已插入数据库的数据。所有数据都带有分类 ID。但是当我使用 get_the_terms 根据分类 id 获取名称时,它什么也没显示。
代码如下:
global $wpdb;
$table_name=$wpdb->prefix .'opu_userdata';
$data=$wpdb->get_results("SELECT * FROM $table_name order by id DESC");
<table class="table table-bordered" id="tow-table">
<thead>
<tr>
<th>Sno</th>
<th>Name</th>
<th>Email</th>
<th>Mobile</th>
<th>Product</th>
<th>Product Sub</th>
<th>Annual Salary</th>
<th>Employee Type</th>
<th>Age</th>
</tr>
</thead>
<tbody>
<?php
$sn=1;
foreach($data as $data):?>
<tr>
<td><?php echo $sn;?></td>
<td><?php echo ucwords($data->name);?></td>
<td><?php echo $data->email;?></td>
<td><?php echo $data->mobile;?></td>
<td><?php echo $data->product;?></td>
<td><?php
if($data->product=="bank-account"){
$id=$data->product_sub;
$n=get_the_terms($id,'account_type');
echo $id; /////if i echo id it prints the id perfectly but when i try $n[0]->name it shows nothing (var_dump($n) shows bool(false) )
}?></td>
<td><?php echo $data->annual_salary;?></td>
<td><?php echo $data->emp_type;?></td>
<td><?php echo $data->age;?></td>
</tr>
<?php $sn++; endforeach;?>
</tbody>
【问题讨论】:
-
您必须确保在执行上述代码之前实际注册了
account_type分类。这可能不会有助于解决方案,但也会将循环中as之后的变量名称更改为其他名称,作为您正在迭代的数组。例如foreach ($data as $d) -
获取分类名称,你有没有使用foreach?
-
@jrswgtr 是的,分类已注册,分类的 id 正在插入数据库中
-
@WPDeveloper 我在前端使用的同一行用于单个帖子 get_the_terms(get_the_id(),'account_type') 并且它运行良好。但在 wp-admin 中它不起作用
-
@denny 我猜你需要编写 foreach 循环来从
get_the_terms获取名称,例如foreach ( $n as $n_t ) { $name = $n_t->name; echo $name; }
标签: wordpress