Options - Отображать Имя Категории На Основе Его Эквивалентного Идентификатора

  • Автор темы Alexgars
  • Обновлено
  • 21, Oct 2024
  • #1

У меня есть тема с опциями. Я хотел бы отобразить 3 сообщения для определенной категории woocommerce, я мог бы показать идентификатор категории, и я не знаю, как отображать продукты на основе идентификатора категории, но у меня есть фрагмент кода, который показывает продукты по названию категории woocommerce. Итак, теперь мне нужно указать выбранное имя категории, а не ее идентификатор, или преобразовать его из идентификатора категории в имя категории?

Я попробовал следовать, но это вообще не сработало. Любая помощь будет оценена по достоинству, я борюсь с этим 2 дня.

 
 $options[] = array( 'name' => __('Slider Category', 'theme'),

'desc' => __('Select a category for the featured post slider', 'theme'),

'id' => 'theme_slide_categories',

'type' => 'select',

'class' => 'hidden',

'options' => $options_categories);
 

когда я повторяю $slidecat, он показывает идентификатор кошки «бургера», который равен 16.

область опций

$slidecat =theme_get_option('theme_slide_categories'); $args = array( 'post_type' => 'product', 'posts_per_page' => 3, 'product_cat' => 'burger', 'orderby' =>'date', 'order' => 'ASC' ); $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); global $product; the_title(); ?> <?php endwhile; wp_reset_query(); ?>

Я надеюсь, что кода, который я здесь предоставил, достаточно, чтобы получить помощь. Спасибо всем

#options #theme-options #framework

Alexgars


Рег
18 Oct, 2013

Тем
69

Постов
198

Баллов
573
  • 25, Oct 2024
  • #2

чтобы преобразовать его из идентификатора категории в имя категории

когда я повторяю $slidecat, он показывает идентификатор кошки «бургера», который равен 16

Вы можете использовать

 
 query_posts() 
чтобы получить пул термина/категории по идентификатору:

wp_reset_postdata()

Или вы могли бы просто передать идентификатор категории wp_reset_query() using the запрос таксономии, вот так:

$args = array( 'post_type' => 'product', 'posts_per_page' => 3, // 'product_cat' => 'burger', // don't set product_cat 'tax_query' => array( array( 'taxonomy' => 'product_cat', 'terms' => $slidecat, 'field' => 'term_id', ), ), 'orderby' => 'date', 'order' => 'ASC' );

Кроме того, вам следует заменить WP_Query в вашем коде с // Get the slug and then pass it to WP_Query. $cat_slug = get_term_field( 'slug', $slidecat, 'product_cat' ); $args = array( 'post_type' => 'product', 'posts_per_page' => 3, 'product_cat' => $cat_slug, 'orderby' => 'date', 'order' => 'ASC' ); потому что первый используется только в том случае, если основной запрос WordPress изменен (например, если вы вызвали get_term_field() чего следует просто избегать).

 

JPN


Рег
25 Mar, 2016

Тем
70

Постов
192

Баллов
572
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно