@tbalero

Как вывести количество опубликованных записей для каждого термина (элемента) в кастомной таксономии?

На вордпресс-сайте создана кастомная таксономия "genres" (жанры) для кастомного типа записей "mouvies" (фильмы).

Кастомная таксономия "genres" содержит несколько терминов (элементов): "melodrama", "comedy", "adventure", "documentary".

*В файле functions.php создано произвольное поле 'zagolovok-of-term-page-of-custom-taxonomy', относящееся к кастомной таксономии "genres":
if( function_exists('acf_add_local_field_group') ):
	// zagolovok-of-term-page-of-custom-taxonomy
	acf_add_local_field_group(array (
		'key' => 'group_5676f09b4150f',
		'title' => 'Заголовок страницы',
		'fields' => array (
			array (
				'key' => 'field_5676f17ea0592',
				'label' => 'Заголовок страницы',
				'name' => 'zagolovok-of-term-page-of-custom-taxonomy',
				'type' => 'text',
				'instructions' => 'Введите заголовок страницы',
				'required' => 1,
				'conditional_logic' => 0,
				'wrapper' => array (
					'width' => '',
					'class' => '',
					'id' => '',
				),
				'default_value' => '',
				'placeholder' => '',
				'prepend' => '',
				'append' => '',
				'maxlength' => '',
				'readonly' => 0,
				'disabled' => 0,
			),
		),
		'location' => array (
			array (
				array (
					'param' => 'taxonomy',
					'operator' => '==',
					'value' => 'genres',
				),
			),
		),
		'menu_order' => 0,
		'position' => 'normal',
		'style' => 'default',
		'label_placement' => 'top',
		'instruction_placement' => 'label',
		'hide_on_screen' => '',
		'active' => 1,
		'description' => '',
	));
	// zagolovok-of-term-page-of-custom-taxonomy
	// end
endif;

1) В шаблоне taxonomy-genres.php необходимо вывести содержимое произвольного поля 'zagolovok-of-term-page-of-custom-taxonomy'
2) А также в шаблоне taxonomy-genres.php необходимо вывести количество записей, относящихся к конкретному термину (элементу) таксономии "genres"

Для решения двух данных задач в шаблоне taxonomy-genres.php использую следующий код:

<h1>
                <!-- Выводим содержимое поля zagolovok-of-term-page-of-custom-taxonomy -->
                <?php

                // load all 'genres' terms for the post
                $terms = get_the_terms( get_the_ID(), 'genres');

                // we will use the first term to load ACF data from
                if( !empty($terms) ) {
                    
                    $term = array_pop($terms);

                    $custom_field = get_field('zagolovok-of-term-page-of-custom-taxonomy', $term );

                    // do something with $custom_field
                    echo $custom_field;
                }

                ?>
                <!-- Выводим содержимое поля zagolovok-of-term-page-of-custom-taxonomy end -->
            </h1>


            <div>
                <div class="row">

                    <!-- Количество опубликованных -->
                    <div class="prop col-md-5 col-lg-6">
                        Найдено: <?php  
                        $terms = get_terms('genres');

                        if ( !empty( $terms ) && !is_wp_error( $terms ) ){

                            echo $term->count;

                        } 
                        ?>
                    </div>
                    <!-- Количество опубликованных end -->

                </div>
            </div>

В результате использования данного кода - обе задачи решаются некорректно: на странице одного элемента таксономии "genres" (например, на странице элемента "melodrama") выводится содержимое произвольного поля 'zagolovok-of-term-page-of-custom-taxonomy' от другого элемента таксономии "genres", а также выводится количество записей, относящихся к другому элементу таксономии "genres"

(то-есть, например, на странице элемента "melodrama" ошибочно выводятся содержимое произвольного поля 'zagolovok-of-term-page-of-custom-taxonomy' и количество записей, относящихся не к этому элементу "melodrama", а к другому элементу из этой же таксономии, например, относящихся к элементу "comedy").

То-есть с помощью кода осуществляется вывод данных, но данные на странице конкретного элемента таксономии ошибочно выводятся не для текущего элемента таксономии, а для другого элемента из этой же таксономии.

Вопрос: как изменить данный код, чтобы исправить возникающее несоответствие? и чтобы в результате:
1) В шаблоне taxonomy-genres.php корректно выводилось бы содержимое произвольного поля 'zagolovok-of-term-page-of-custom-taxonomy'
2) А также в шаблоне taxonomy-genres.php корректно выводилось бы количество записей, относящихся к конкретному термину (элементу) таксономии "genres"
  • Вопрос задан
  • 810 просмотров
Пригласить эксперта
Ответы на вопрос 1
Добавьте в свою функцию вывода

'show_count'   => 1,       //  показываем количество записей (1 - true, 0 - false)
 'pad_counts'   => 1,       // показываем количество записей у родителей (1 - true, 0 - false) - по умолчанию : 0;
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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