custom fields в цикле

Это опять я со своими custom fields 🙂
Проблема в том, что я хочу вывести в одиночной записи все посты, у которых совпадает значение (value) произв. поля объект и у произв. поля актуально в значении стоит true

Вроде же правильно написала?
Но второе условие с актуально не учитывается, т.е. просто выводятся все посты у которых совпадает значение (value) произв. поля объект вне зависимости от того, какое value у произвольного поля актуально : true или false, а мне бы надо только с true

<?php
$series_name = get_post_meta($post->ID, 'объект', $single = true);
if($series_name !== '') { ?>
<h4>актуально для «<?php echo $series_name ?>»:</h4>
<ul>
<?php
$posts_new = get_posts('meta_key=актуально&meta_value=true&meta_key=объект&meta_value='.$series_name);
foreach ($posts_new as $post_new) :
    echo '<li>';
    echo mysql2date('j.m.Y',  $post_new->post_date);
    echo '<br /><a href="';
    echo get_permalink($post_new->ID);
    echo '">';
    echo $post_new->post_title;
    echo '</a></li>';
endforeach;
?>
</ul>
<?php } ?>

wp 2.3.3

Что я не так делаю?
ПАМАГИТЕ 😀

Соня, ну подумай сама: в запросе два meta_key и два meta_value. Ну как бедному движку разбираться, кто из них кому соответствует? На самом деле он и не разбирается – берет только одно, последнее значение для каждого параметра. Что делать? В запросе использовать одну пару, а вторую отсеивать в цикле. Что-то типа такого:

$posts_new = get_posts(‘meta_key=объект&meta_value=’.$series_name);
foreach ($posts_new as $post_new) :
if (get_post_meta($post_new->ID,’актуально’,true) == ‘false’ ) continue;
echo ‘<li>’;
echo mysql2date(‘j.m.Y’, $post_new->post_date);
echo ‘<br /><a href="’;
echo get_permalink($post_new->ID);
echo ‘">’;
echo $post_new->post_title;
echo ‘</a></li>’;
endforeach;

Ну а чего ему, перебрал все custom fields и вывел что нужно :)))
Большое спасибо, Юрий Дмитриевич, теперь выводится как надо! Круто получилось :)))

Там перебора нет. Для разбора параметров в WP используется php-функция extract(), превращающая ассоциативный массив в переменные. Один ключ – одна переменная. Откуда берется массив? Его до того делают из урлообразной строки параметров, если параметры функции сразу не заданы в виде массива. Отакая кибернематика 😀

Отакая кибернематика :D

АААА! Я знаю это слово 🙂 Остальное поняла смутно 🙂

Anonymous
Отправить
Ответ на: