Intereting Posts
Показать все пользовательские поля и значения, если пусто Пустые результаты поиска return soft 404 Показать сообщение, нажав на ссылку Интеграция разницы в человеческом времени и традиционных временных меток? Отображение содержимого отдельной публикации Как проверить, включен ли searchform.php в качестве виджета? bbPress: как установить условие для конкретной пользовательской роли пользователя или пользователя, отображаемое в профиле пользователя Показывать контент, если родительская страница имеет детей как добавить пользовательский CSS в верхней части выше всего файла css для определенного URL-адреса Будет ли он разбивать мой сайт, если я удалю все переходные записи в таблице wp_options? Как я могу написать в многоуровневой функции доставки для конкретного продукта WC? Невозможно получить функцию Alert для постоянной работы с бэкэнд-виджетами с последним WP Изменение условных выражений с жестким кодом для ролей для пользовательских ролей И / Или запрос категории Использовать субдомен для определенных URL-адресов

Как перебирать определенные значения полей

Я использую плагин ACF, и я хотел бы создать агрегированный shortcode, содержащий данные с других страниц, которые используют пользовательские поля. Можете ли вы помочь, как начать?

спасибо

Поэтому некоторые из моих сообщений имеют настраиваемые поля, такие как «фотография». Я хотел бы запросить все сообщения и получить данные со всех страниц, содержащих поле «фото».

У меня есть запрос, который должен работать

<?php // args $args = array( 'meta_key' => 'photo' ); // get results $the_query = new WP_Query( $args ); // The Loop ?> <?php if( $the_query->have_posts() ): ?> <ul> <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <li> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li> <?php endwhile; ?> </ul> <?php endif; ?> 

Но он не возвращает результатов.

Если я позвоню

 <?php the_field('photo'); ?> 

Он возвращает ожидаемое значение

Solutions Collecting From Web of "Как перебирать определенные значения полей"

Ваш запрос, кажется, в порядке, за исключением того факта, что вам нужно сбросить запрос после его завершения. Просто добавьте wp_reset_postdata() между endwhile и endif . Несоблюдение этого может привести к тому, что на другие запросы повлияет этот запрос. Противоположное также верно, другие пользовательские запросы также могут влиять на это, если не были сброшены.

Я могу только предположить, что может быть неправильным, но вот пара пунктов для проверки

  • post_type -> По умолчанию, кроме налоговых запросов, для этого параметра задано post . Если вы используете персонализированный тип сообщения или страницы, ваш запрос просто не вернет ничего

  • post_status -> По умолчанию это установлено для publish , при добавлении пользователя пользователь добавляет private . Если статус вашего сообщения – что-то еще, вам нужно добавить это к вашему запросу.

Если это не сработает, проверьте свой запрос SQL, поставив следующий код чуть ниже вашего запроса

 echo $the_query->request; 

а затем оттуда оттуда.

Один быстрый совет, если вы хотите «safegaurd» создать новый экземпляр WP_Query против модификаций из фильтров, просто добавьте 'suppress_filters' => true, к вашим аргументам запроса. Это также полезно при отладке, так как это может быть быстрый тест, чтобы узнать, вызвано ли неповрежденное поведение пользовательским запросом настраиваемым фильтром

В своем коротком коде, прежде чем вы его создадите, просто do_shortcode() , если вы собираетесь использовать do_shortcode() в файле шаблона, то вам следует пересмотреть и просто использовать эту функцию и удалить короткий код. Короткие коды нужно разбирать, поэтому он будет медленнее, чем просто вызов функции

Если вы видите использование подходящего кода для ваших нужд, вам необходимо соответствующим образом настроить свой пользовательский запрос. Короткие коды никогда не должны повторять их вывод, но вместо этого верните его. Для этого используйте get_ префикса get_ шаблонных тегов, которые вы используете в настоящий момент, затем добавьте свои метки HTML и теги шаблона к переменной и просто верните переменную в конце

Дополнительная информация:

  • WP_Query

  • API коротких кодов