Динамическая переменная для пользовательской таксономии в цикле?
У меня есть пользовательский шаблон страницы, который просматривает все пользовательские сообщения с типом post_type "product_listing" И пользовательской таксономией "product_cat" "рубашки" и возвращает 4 сообщения на страницу (как показано ниже:)
<?php $loop = new WP_Query( array( 'post_type' => 'product_listing', 'product_cat' => 'shirts', 'posts_per_page' => 4 ) ); ?>
Ответственность за управление этими категориями лежит на клиенте. Я хотел бы назначить переменную для отображения вместо "рубашки", чтобы мне не приходилось изменять шаблон каждый раз, когда клиент добавляет новую категорию товаров (например, обувь, брюки и т. Д.).
Я ни в коем случае не программист. У кого-нибудь есть фрагмент кода, который бы работал для этого? Или, может быть, статью, которую я мог бы прочитать больше о назначении динамических переменных в цикле? Спасибо!
2 answers
Вы можете разрешить своему клиенту добавлять категорию продукта с помощью настраиваемого поля.
<?php $loop = new WP_Query( array( 'post_type' => 'product_listing', 'product_cat' => get_post_meta($post->ID, 'product_cat', true), 'posts_per_page' => 4 ) ); ?>
Это должно сработать, если ваш клиент добавит пользовательское значение поля для ключа "product_cat".
По-видимому, мне нужно было зациклить функцию, чтобы установить переменную:
<!-- BEGIN CODE FOR PRODUCT AREA -->
<?php $prod_cats = get_terms('product_cat');
foreach ($prod_cats as $prod_cat) {
$cat_name = $prod_cat->name; ?>
<div id="products">
<!-- post begin -->
<?php $loop = new WP_Query( array( 'post_type' => 'product_listing', 'posts_per_page' => 4, 'product_cat' => $cat_name ) ); ?>
<?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
<div class="product-tease" id="post-<?php the_ID(); ?>">
<div class="upper">
<h3><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h3>
<p align="center"><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><img src="<?php echo catch_that_image() ?>" /></a></p>
<?php the_excerpt('Read the rest of this entry »'); ?>
</div>
<span class="btn-readon"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>">Read On</a></span>
</div>
<?php endwhile; ?>
<br clear="all" />
<!-- post end -->
<br clear="all" />
<?php wp_reset_query(); ?>
<?php rewind_posts(); ?>
</div>
<?php } // End foreach $prod_cats ?>