Перед LOOP:
$the_query = new WP_Query( array( 'posy_type' => 'post', 'meta_key' => 'ne_glav', 'meta_value' => '1', 'meta_compare' => '!=' ) );
// берем посты, берем ключ и его значение, если не равно 1, то выдаем в эфир
Затем изменить LOOP:
while ( $the_query->have_posts() ) : $the_query->the_post();
//bla bla
endwhile;
wp_reset_postdata(); //не забудьте
нее. немного не так.. когда мы указываем в запросе meta_key он ищет по постам у которых в этом ключе есть какое либо значение. то есть если в посте нет meta поля ne_glav то эту запись он отсеет а мне как раз они нужны..
Да, действительно. Попробовал сам, что предложил 🙂 Если даже оставить только meta_value != 1, то выдает совсем не то… Как-то нелогично…
полагаю что средствами wp_query тут не обойтись. пойду через проверку на наличие произвольного поля. То есть буду брать все записи, но выводить только удовлетворяющие условию
Ну вот я набросал «корявый код», но вроде работает. В functions.php закинул такой участок:
function get_post_custom_field() {
global $post;
$mypost = get_posts(array('meta_value' => '1'));
$new = array();
foreach ($mypost as $post) :
{
$new[] = $post->ID;
}
endforeach;
return $new;
}
То бишь мы получаем все ID со значением поля meta_value = 1
Затем заменил цикл в выбранном файле шаблона и в exclude внес выбранные ранее ID (которые ненужные):
$myposts = get_posts(array('exclude' => array_values(get_post_custom_field())));
foreach ($myposts as $posts)
{
echo $posts->ID;
echo $posts->post_title;
}
[это примерный вывод, если будете применять, то оформляйте сами :)]
Блин, понимаю, что коряво, но вроде на тестовом работает.
UPD использовал http://codex.wordpress.org/Template_Tags/get_posts
Воо 🙂 спасибо. Подогнал всё как надо и работает!))
[offtop] Может кто из коллег, подскажет более разумное и дельное 🙂 Кстати, заставили задуматься меня, я тоже планирую на кастомных полях реализоваться… буду мучиться тоже 🙂
Да.. С custom_fields не просто подружиться)) давно с ними бьюсь.
Упростил код
<? query_posts(array('post_type'=>'post','showposts'=>'2','post__not_in'=>get_post_custom_field())); ?>
Потом стандартный Loop, со всеми его возможностями.