Zoylander
@Zoylander

Как пустым категориям задать свой класс?

Добрый день.

Есть теги "А Б В Г". Тег Г не присвоен ни одной из записей. Мне нужно вывести все теги, в тч пустые. Я убрал в коде исключение касательно пустых тегов - теперь выводятся все.
Мне нужно добавить свой класс всем тегам без записей, например тегу Г класс "empty".

$output = '';
if ( 'yes' === $atts['show_filter'] && ! empty( $filter_terms ) ) {
	$unique_terms = array_unique( $filter_terms );
	$terms_ids = ! empty( $atts['exclude_filter'] ) ? array_diff( $unique_terms, // Posts filter terms
		array_map( 'abs', preg_split( '/\s*\,\s*/', $atts['exclude_filter'] ) ) ) : $unique_terms;
	$terms = count( $terms_ids ) > 0 ? get_terms( $atts['filter_source'], [
	'hide_empty' => false, ], array(
		'include' => implode( ',', $terms_ids ),
	) ) : array();

	$filter_default = $atts['filter_default_title'];
	if ( empty( $filter_default ) ) {
		$filter_default = esc_html__( 'All', 'js_composer' );
	}
	if ( 'dropdown' !== $atts['filter_style'] ) {
		$output .= '<ul class="vc_grid-filter vc_clearfix vc_grid-filter-' . esc_attr( $atts['filter_style'] ) . ' vc_grid-filter-size-' . esc_attr( $atts['filter_size'] ) . ' vc_grid-filter-' . esc_attr( $atts['filter_align'] ) . ' vc_grid-filter-color-' . esc_attr( $atts['filter_color'] ) . '" data-vc-grid-filter="' . esc_attr( $atts['filter_source'] ) . '"><li class="vc_active vc_grid-filter-item"><span data-vc-grid-filter-value="*">';
		$output .= esc_attr( $filter_default );

		$output .= '</span></li>';
		foreach ( $terms as $term ) {
			$output .= '<li class="vc_grid-filter-item"><span' . ' data-vc-grid-filter-value=".vc_grid-term-' . esc_attr( $term->term_id ) . '">';
			$output .= esc_attr( $term->name );
			$output .= '</span></li>';
		}
		$output .= '</ul>';
	}

return $output;
  • Вопрос задан
  • 37 просмотров
Решения вопроса 1
Zoylander
@Zoylander Автор вопроса
Сам задал вопрос и сам на него отвечу. Возможно кому-то будет полезно - удалять не буду.

Итак, я решил задачу несколько не стандартным способом - добавил в li елемент дополнительный класс "count-" + подключил к нему вывод количества записей тега. Итого пустые теги получили классы "count-0".

foreach ( $terms as $term ) {
			$output .= '<li class="vc_grid-filter-item alph-term-' . esc_attr( $term->slug ) . ' count-' . $term->count .' "><span' . ' data-vc-grid-filter-value=".vc_grid-term-' . esc_attr( $term->term_id ) . '">';
			$output .= esc_attr( $term->name );
			$output .= '</span></li>';
		}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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