#wordpress #categories
#wordpress #Категории
Вопрос:
Приведенный ниже код отображает изображения родительских категорий могу ли я отображать подкатегории под изображением родительской категории
<?php $cat = get_query_var('cat');
$args=array('term_args'=>array('child_of'=>$cat,'hide_empty'=>0,'orderby'=>'id'));
$terms = apply_filters( 'taxonomy-images-get-terms','',$args );
if ( ! empty( $terms ) ) {
foreach ( (array) $terms as $term ) {
echo $this_category;
?>
<li class="col-md-3">
<a href="<?php echo $term->name; ?>"><?php echo wp_get_attachment_image( $term->image_id, 'detail' ) ?></a>
</li>
<?php
}
}
?>
Ответ №1:
Я создал две пользовательские функции для получения родительских дочерних категорий в моем проекте. Создайте файл с именем project-helper.php и перейти к functions.php , наконец, добавьте свой созданный project-helper.php файл для functions.php
//functions.php
require 'project-helper.php';
// project-helper.php
/**
* Get Category
* @param $taxonomy
* @param string $order
* @return array
*/
function getPostTermCategory($taxonomy, $order = 'asc')
{
$term_query = new WP_Term_Query([
'taxonomy' => $taxonomy,
'order' => $order,
'hide_empty' => false,
'parent' => 0
]);
$categories = [];
foreach ($term_query->terms as $term) {
$categories[] = $term;
}
return $categories;
}
/**
* Get Child Categories of Parent
* @param $taxonomy
* @param $parentId
* @param string $order
* @return array
*/
function getPostTermChildCategory($taxonomy, $parentId, $order = 'asc')
{
$term_query = new WP_Term_Query([
'taxonomy' => $taxonomy,
'order' => $order,
'hide_empty' => false,
'parent' => $parentId
]);
$categories = [];
foreach ($term_query->terms as $term) {
$categories[] = $term;
}
return $categories;
}
А теперь вызывайте созданные функции из вашего шаблона.
$projectRegions = getPostTermCategory('project-region-cat');
foreach ($projectRegions as $projectRegion) {
<?php $categoryChild = getPostTermChildCategory('project-region-cat', $projectRegion->term_id);
foreach ($categoryChild as $categoryChild) { ?>
<option value="<?= $categoryChild->slug; ?>"><?= $categoryChild->name; ?></option>
<?php } ?>
}
Я использовал опцию выбора html-тега. Вы можете делать что угодно со своим циклом
// Здесь project-region-cat является родительской категорией