Это прозвучит немного глупо. У меня есть ситуация, когда я показываю список продуктов, которые пользователь выбирает для перехода на страницу продуктов. У меня также есть документы и видео, для которых я создал пользовательские типы сообщений и поля. Мне нужно запустить второй цикл в текущем цикле, чтобы извлечь настраиваемое поле из пользовательского типа сообщения. Если это имеет смысл?
например, это цикл «каталог» продукта (извините за мои хакерские приемы)
<div id="content" role="main">
<?php
$parent = $post->ID;
query_posts('post_type=page&order=ASC&orderby=title&post_parent='.$parent);?>
<?php while (have_posts()) : the_post(); ?>
<?php $model = get_the_title(); ?>
<div class="product-selection-container round">
<h2 class="directory-title"><a href="<?php the_permalink() ?>"><?php echo get_post_meta($post->ID, "product-main-title", true); ?></a></h2>
<h3>Model <?php echo $model ?></h3><!-- the model -->
<?php echo my_excerpts(); ?>
<ul class="round">
<li><a href="<?php the_permalink() ?>">Learn More</a></li>
<li><a href="">Specification Sheet</a></li>
<li><a href="">Video Tour</a></li>
</ul>
</div>
</div>
<?php endwhile; ?>
И это цикл, который я обычно использую для добавления документов на страницы (за исключением пользовательского шаблона цикла).
<?php
$documents = array('numberposts' => 5, 'post_type' => 'documents', 'category_name' => $model);
query_posts( $documents );
get_template_part( 'loop', 'documents' );
wp_reset_query();
?>
Я попытался объединить два, где бы я добавил второй цикл, <li><a href="">Specification Sheet</a></li>
но это привело к тому, что страница работала в вечном цикле.
Альтернативный вариант, который я искал, заключался в том, чтобы извлечь одно настраиваемое поле из типа сообщения без создания цикла. Например.
get post_type => document, meta_key => document-type, meta_value => spec-sheet
Любая помощь будет оценена по достоинству.
Посмотрите документы цикла в кодексе, для вложенных циклов или нескольких циклов на одной странице не используйте query_posts, используйте что-то вроде $my_query = new WP_Query.
Да, мне было трудно преобразовать мои текущие циклы в get_posts или WP_Query.
Я предполагаю, что вы используете что-то вроде этого… чтобы получить желаемое пользовательское значение. Как только вы окажетесь внутри цикла.
Поскольку вы используете $model в качестве основы для запроса. Вы можете создать функцию, которая будет запрашивать то, что вы хотите, а затем сбрасывать текущий запрос. Вы могли бы использовать его где угодно. Вот шаблон.