Intereting Posts
WordPress выбирает неправильный шаблон для персонализированной страницы типа архива Отображение части меню, содержащего страницу, которую пользователь просматривает в данный момент, и только ее непосредственные дети Отображать сообщение об успешном завершении после wp_update_post Получение уведомлений администратора после обновления страницы Изменить миниатюры медиа-библиотеки для файлов без изображения, чтобы включить заголовок сообщения вместо имени файла? Отключить только основной канал? Как загрузить стандартные скрипты WordPress Как добавить фильтр таксономии по запросу? WP_Query orderby ломается при использовании AJAX? get_post_meta только в одном сообщении Как добавить событие onclick в изображение виджета Как сделать мой третий многопользовательский блог с id 1000? Получение текущего номера сообщения / увеличения количества сообщений Восстановить текст виджетов из базы данных Предотвращение дублирования сообщений из виджетов

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

Я знаю, что вопрос довольно неоднозначный. Позволь мне объяснить:

У меня есть страница, в которой перечислены все сообщения с определенным значением настраиваемого поля. (Например: Страница « Rentals содержит все сообщения с offer_type rental пользовательского поля offer_type ).

Я хотел бы добавить фильтр по городу, чтобы отображались только сообщения с определенным значением пользовательского поля city . Для этого я создал форму, используя метод get который создает пользовательский запрос (в моем примере с двумя настраиваемыми полями, «offer_тип» и «город»).

Мне нужен способ перечислить все города (значения city пользовательского поля) для сообщений с rental стоимостью offer_type . Каждый город должен быть указан один раз.

Я пробовал этот бит кода (обратите внимание, что я взял всю форму упаковки):

 $metakey = 'city'; $cities = $wpdb->get_col($wpdb->prepare("SELECT DISTINCT meta_value FROM $wpdb->postmeta WHERE meta_key = %s ORDER BY meta_value ASC", $metakey) ); if ($cities) { foreach ( $cities as $city ) { echo $city; } } 

но в нем перечислены все значения пользовательского поля города для всех сообщений (так что если, например, у меня есть сообщение со значением offer_type отличное от rental , его значение пользовательского поля города будет отображаться в моем списке).

Я знаю, что проблема связана с sql-запросами и объединением таблиц, но мне действительно не хватает навыков для решения этой проблемы.

Пожалуйста помоги!

взгляните на справочные документы для класса WP_Query: http://codex.wordpress.org/Class_Reference/WP_Query

что-то вроде этого:

 $args = array( //some key/value pairs...whatever 'meta_query => array( array( 'key' => somekey, 'value' => somevalue, 'compare' => some comparison operator ), array( 'key' => some other key, 'value' => some other value, 'compare' => some comparison operator ) ) ) $my_query = new WP_Query( $args ); //some code to do something with the results of the query 

это не прямой ответ на ваш вопрос, а строка кода, которую вы использовали бы в качестве ссылки на работу.

вот копия того, что я использую для поиска через мою таблицу, я ищу между диапазоном данных, а затем ограничиваю ее только отображением экземпляров введенного usr_id

  $this->items = $wpdb->get_results($wpdb->prepare("SELECT * FROM $table_name WHERE `datec` BETWEEN CAST('$start_date' AS DATE) AND CAST('$end_date' AS DATE) AND `usr_id`= $usr_id"), ARRAY_A); 

надеюсь это поможет 🙂