Задать вопрос

Как осуществить вывод постов с определенным значением произвольного поля?

Добрый день. Нужно вывести на странице все записи с определенным значением произвольного поля.
<?php $nomer = get_the_ID(); ?> //получаем ID страницы на которой находимся
    <?php the_ID(); ?><?php echo $nomer; ?>
<?php $query = new WP_Query(array('post_type' => 'event', 'meta_query' => array('key' => 'event_place', 'value' => $nomer, 'type' => 'numeric'), 'posts_per_page' => '10')); ?>
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
<?php the_title();
the_permalink(); ?><br>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>


Этим значением произвольного поля является ID какой-нибудь страницы.

Соответственно на этой странице должны выводиться все записи связанные с ней.
Для записей типа "event" было создано произвольное поле "event_place". Это поле выводит ID заведения в котором проходит "event". Соответственно выборку делал по ID.
Выводит либо вообще все записи типа "event", либо вообще ничего. В чем проблема?
  • Вопрос задан
  • 5153 просмотра
Подписаться 4 Средний Комментировать
Решения вопроса 1
cyberS7
@cyberS7 Автор вопроса
Решил вопрос следующим образом. Может кому пригодится.
<?php $events = get_posts(array(
                            'post_type' => 'event',
                            'meta_query' => array(
                                array(
                                    'key' => 'event_place', 
                                    'value' => '"' . get_the_ID() . '"', 
                                    'compare' => 'LIKE'
                                )
                            )
                        ));
 
                        ?>
                        <?php if( $events ): ?>
                            <ul>
                            <?php foreach( $events as $event ): ?>
                                <li>
                                    <a href="<?php echo get_permalink( $event->ID ); ?>">
                                      
                                        <?php echo get_the_title( $event->ID ); ?>
                                    </a>
                                </li>
                            <?php endforeach; ?>
                            </ul>
                        <?php endif; ?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
rOOse
@rOOse
Frontend developer
Из кодекса: Important Note: meta_query takes an array of meta query arguments arrays (it takes an array of arrays)
то есть правильный запрос такой:
<?php 
    $query = new WP_Query(array(
        'post_type' => 'event', 
        'meta_query' => array(
            array(
                'key' => 'id', 
                'value' => $nomer, 
                'type' => 'numeric'
            )
        ), 
        'posts_per_page' => '10'
    )); 
?>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы