Я исследовал всю сеть и форумы по моему вопросу, но я не могу дать правильные результаты. По сути, я пытаюсь отобразить термины или атрибуты продукта только для определенной категории продуктов.
Вот код, над которым я работал.
<fieldset class="liquor-types-control filter-controls" >
<?php
$terms = get_terms( 'wine', /*<--Product Category */ 'pa_liquor-types' /* <--Product Attribute */);
foreach ( $terms as $term ) :
?>
<label>
<input type="checkbox" value="<?php echo "." . $term->slug ?>" />
<?php echo $term->name ?>
</label>
<?php endforeach; ?></fieldset>(
[errors] => Array
(
[invalid_taxonomy] => Array
(
[0] => Invalid taxonomy.
)
)
[error_data] => Array
(
)
)
var_dump
показывает, что вы используете таксономии на WordPress. Хотя у меня нет опыта работы с WordPress, WordPress сайт документы сказать:
До 4.5.0 первым параметром get_terms () была таксономия или
список таксономий:Начиная с 4.5.0, таксономии должны передаваться с помощью аргумента «таксономии».
в массиве $ args:
$term = get_term( $term_id, $taxonomy );
Дает вам термин «слизняк»: например: термин-слаг-пример
$slug = $term->slug;
Дает вам название термина: например Пример названия термина
$name = $term->name;
Во-первых, убедитесь, что вы используете правильную версию — вы используете синтаксис из предыдущих 4.5.0
Во-вторых, ошибка говорит о том, что таксономия pa_liquor-types
является недействительным. Вы должны проверить, где это определяется.
Проверьте свои create_initial_taxonomies()
Синтаксис функции и опубликовать его при необходимости.
попробуйте что-то вроде этого:
<?php
$terms = get_terms( 'wine', 'pa_liquor-types');
foreach($terms as $term) { ?>
<input type="checkbox" value="<?php echo "." . $term['slug'];?>"/>
<?php echo $term['name'];?>
<?php } ?>
Использование; после $ term-> slug и $ term-> name.
<label>
<input type="checkbox" value="<?php echo $term->slug; ?>" />
<?php echo $term->name; ?>
</label>
Получите термины вин и ликер по отдельности, объедините их в один массив $ term и выполните цикл по этому массиву, чтобы получить все термины. Надеюсь, это поможет, еще не проверял код.
<fieldset class="liquor-types-control filter-controls" >
<?php
global $post;
$terms_wine = get_the_terms(get_the_ID(),'wine');
$terms_liquor = get_the_terms(get_the_ID,'pa_liquor-types');
$terms = array();
foreach($terms_wine as $wine){
array_push($terms,$wind);
}
foreach($terms_liquor as $liquor){
array_push($terms,$liquor);
}foreach ( $terms as $term ) :
?>
<label>
<input type="checkbox" value="<?php echo "." . $term->slug ?>" />
<?php echo $term->name ?>
</label>
<?php endforeach; ?></fieldset>