Как вывести body class из wp_termmeta?

Wordpress
Есть таблица wp_termmeta c ячейками meta_id, term_id, meta_key, meta_value
Нужно вывести в виде css-класса в body_class значение meta_value

d4ffeca11aab41b3b98b0ba93fc8734a.png

Гугление привело к этому:
// add taxoonomy term to body_class
function lalka_custom_taxonomy_in_body_class( $classes ){
  if( is_singular() )
  {
    $custom_terms = get_term_meta($meta_id, 'custom-class', true );
    if ($custom_terms) {
      foreach ($custom_terms as $custom_term) {
        $classes[] = 'custom-tax-' . $custom_term->slug;
      }
    }
  }
  return $classes;
}

add_filter( 'body_class', 'lalka_custom_taxonomy_in_body_class' );


Но не помогает
  • Вопрос задан
  • 258 просмотров
Решения вопроса 1
@zaharbaz Автор вопроса
Вопрос решен! Если кому вдруг пригодится:

add_filter( 'body_class', 'lalka_custom_taxonomy_in_body_class' );
function lalka_custom_taxonomy_in_body_class( $classes ){
    if (is_tax('product_cat')) {

        $custom_class = !empty( get_queried_object_id() ) ? get_term_meta(get_queried_object_id(), 'custom-class', true) : FALSE;
        if ( !empty($custom_class) ) {
            $classes[] = 'custom-tax-' . $custom_class;
        }

    }
      return $classes;
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimasmagadan
@dimasmagadan
$custom_terms = get_term_meta($meta_id, 'custom-class', true );
выдаст вам не массив

$custom_terms = get_term_meta($meta_id, 'custom-class', true );
    if (!empty($custom_terms) ) {
        $classes[] = 'custom-tax-' . $custom_terms;
    }
Ответ написан
Ваш ответ на вопрос

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

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