get_the_terms не работает в пользовательском плагине - PullRequest
1 голос
/ 06 января 2020

Я создал собственный плагин, который хранит пользовательские данные в таблице БД. Форма имеет выпадающий список с идентификатором таксономии в качестве значения.

Форма работает, а идентификатор таксономии и другие данные пользователя вставляются в базу данных.

В админ-панели wp я показываю данные который был вставлен в базу данных. Все данные идут с идентификатором таксономии. Но когда я использую get_the_terms, чтобы получить имя в соответствии с идентификатором таксономии, оно ничего не показывает.

Вот код:

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>

1 Ответ

0 голосов
/ 06 января 2020

Хорошо, я получил решение. Я должен использовать get_term_by вместо get_the_terms, чтобы получить имя термина в соответствии с идентификатором таксономии

Вот решение:

<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 $d):?>
    <tr>
        <td><?php echo $sn;?></td>
        <td><?php echo ucwords($d->name);?></td>
        <td><?php echo $d->email;?></td>
        <td><?php echo $d->mobile;?></td>
        <td><?php echo $d->product;?></td>
        <td><?php
        if($d->product=="bank-account"){
            $id=$d->product_sub;
            $term=get_term_by('id',$id,'account_type');
            echo $term->name;
        }?></td>
        <td><?php echo $d->annual_salary;?></td>
        <td><?php echo $d->emp_type;?></td>
        <td><?php echo $d->age;?></td>
    </tr>
    <?php $sn++; endforeach;?>

</tbody>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...