Задать вопрос
godsplan
@godsplan

Почему не срабатывает get_terms()?

Стоит задача выводить контент по рубрикам, то есть если в записи есть рубрика то выводить рубрики этой записи, если рубрик нет, то выводить контент записи.
Вот список категорий
GI4OupgEVTg.jpg
Здесь регистрация нового типа записи "Услуги"
spoiler

add_action('init', 'service');
function service()
{
  $labels = array(
    'name' => 'Услуги',
    'singular_name' => 'Услуга',
    'add_new' => 'Добавить услугу',
    'add_new_item' => 'Добавить новую усулгу',
    'edit_item' => 'Редактировать услугу',
    'new_item' => 'Новая услуга',
    'view_item' => 'Посмотреть усулугу',
    'search_items' => 'Найти услугу',
    'not_found' =>  'Услуг не найдено',
    'not_found_in_trash' => 'В корзине услуг не найдено',
    'parent_item_colon' => '',
    'menu_name' => 'Услуги'
  );

  $args = array(
    'labels' => $labels,
    'public' => true,
    'publicly_queryable' => true,
    'show_ui' => true,
    'show_in_menu' => true,
    'query_var' => true,
    'rewrite' => true,
    'capability_type' => 'page',
    'has_archive' => false,
    'hierarchical' => false,
    'menu_position' => 5,
    'supports' => array('title','editor','thumbnail', 'comments'),
		'taxonomies' => array('services') 
  );
  register_post_type('services',$args);  
}

// Создаем новую таксономию для Услуг
add_action( 'init', 'create_services_taxonomies', 0 );

function create_services_taxonomies(){
  $labels = array(
    'name' => _x( 'Категории услуг', 'taxonomy general name' ),
    'singular_name' => _x( 'Категория услуги', 'taxonomy singular name' ),
    'search_items' =>  __( 'Найти категорию услуг' ),
    'all_items' => __( 'Все категории услуг' ),
    'parent_item' => __( 'Родительская категория услуги' ),
    'parent_item_colon' => __( 'Родительская категория' ),
    'edit_item' => __( 'Родительская категория' ),
    'update_item' => __( 'Обновить катгорию' ),
    'add_new_item' => __( 'Добавить новую катгорию' ),
    'new_item_name' => __( 'Название новой категории услуг' ),
    'menu_name' => __( 'Категории услуг' ),
  );

  register_taxonomy('services', array('service'), array(
    'hierarchical' => true,
    'labels' => $labels,
    'show_ui' => true,
    'query_var' => true,
    'rewrite' => array( 'slug' => 'services' ),
  ));

}



Это функция которая выводит записи по рубрикам с wp-kama
spoiler
function first_child_terms_list() {

	$current_term = get_queried_object();

	// Если текущая страница не страница термина - прерываем выполнение функции
	if ( ! ( is_a( $current_term, 'WP_Term' ) ) ) {
	echo lul;
	}

	// Если это термин не древовидной таксономии - прерываем выполнение функции
	if ( ! is_taxonomy_hierarchical( $current_term->taxonomy ) ) {
	echo kek;
	}

	// Запрашиваем дочерние элементы верхнего уровня текущего термина
	$terms = get_terms( [
		'taxonomy'   => $current_term->taxonomy,
		'parent'     => $current_term->term_id,
		'hide_empty' => false,
	] );

	// Если возникла ошибка запроса или терминов нет - прерываем выполнение функции
	if ( is_wp_error( $terms ) || ! $terms ) {
		return;
	}

	?>

	<ul class="terms">
	<?php foreach ( $terms as $term ): ?>

		<li class="term">
			<?php
			printf(
				'<a href="%s" class="term-link">%s</a>',
				esc_url( get_term_link( $term ) ),
				esc_html( $term->name )
			)
			?>
		</li>

	<?php endforeach; ?>
	</ul>

	<?php
}

Но у меня водится пустота, либо если я заменяю taxonomy на 'services' у меня выводится просто все категории услуг.
Почему так?
  • Вопрос задан
  • 128 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы