Существует несколько способов решить эту проблему в зависимости от сложности вашей логики компоновки. Если вы в основном просто нужно перебрать 16 сообщений в порядке, вы можете использовать параметр orderby
в запросе, чтобы сортировать сообщения:
$args = array(
'post-type' => 'YOUR_POST_TYPE',
'orderby' => 'meta_value_num',
'meta_key' => 'YOUR_METAFIELD_SLUG'
);
$customposts = new WP_Query($args);
while($customposts->have_posts()): $customposts->the_post();
// loop goes here
Если вам нужно что-то более сложное, вы могли бы быть в состоянии избежать повторения запросов путем запроса один раз и затем использования условных выражений для проверки значения мета. Например, с запросом из приведенного выше примера ...
// Position 1 on your page
<div class="position-1">
<?php
while($customposts->have_posts()): $customposts->the_post();
$meta_value = get_post_meta(get_the_ID(), 'YOUR_METAFIELD_SLUG', true);
// Only print something here if the meta value is what we want
if($meta_value == 1) :
the_title();
the_content();
endif;
// Reset the loop
$customposts->rewind_posts(); ?>
</div>
// Position 2 on your page
<div class="position-2">
<?php
while($customposts->have_posts()): $customposts->the_post();
$meta_value = get_post_meta(get_the_ID(), 'YOUR_METAFIELD_SLUG', true);
if($meta_value == 2) :
the_title();
the_content();
endif;
// Reset the loop again
$customposts->rewind_posts(); ?>
.... и так далее.
Вы можете найти эти полезные:
http://codex.wordpress.org/Function_Reference/get_post_meta
http://codex.wordpress.org/Class_Reference/WP_Query
Спасибо за этот быстрый ответ. Я обязательно использую ваш второй пример и использую шаблонную часть для названия и контента, чтобы работать немного СУХОЙ. Еще раз спасибо – Toasty
пост-тип должен быть post_type. Еще спасибо – Toasty