Intereting Posts
Массовый URL-адрес добавления (добавить слово в slug) Почему эти настройки не зарегистрированы? WP_Query на пользовательский тип сообщения не отображается, несколько циклов и get_template_part Позвольте мне выбрать permalinks Выполнять внутреннюю переадресацию в WordPress? Где WordPress Mu DB хранит ссылку панели управления сетевого администратора Установка и обновление плагинов при установке VPS WordPress Добавление сценария Pinterest перед закрытием тега тела WP REST API V2 – Получить дополнительную страницу с полным пулем (URL / Path) Использование пользовательского / динамического «slug» для страницы как лицензируются данные тестовой единицы темы? Мой пользовательский плагин не создал таблицы db в базе данных Как изменить способность, необходимую для доступа к параметрам плагина? Как отказаться от функции, используемой в плагине? Расширенный поиск для WordPress Michael Soriano touch mobile

Условный пользовательский запрос поля

Я работаю над сайтом типа доска объявлений, и клиент хочет продавать признанные сообщения. Они хотят, чтобы показанные должности истекали из показа в разделе «признакам» через заданный период времени, но продолжают отображаться на остальной части сайта.

Мое решение этой проблемы состояло в том, чтобы назначить настраиваемое поле для сообщений в категории «признакам», указав количество дней, в которые оно должно быть включено, скажем, 15. Таким образом, логика запроса будет выглядеть примерно так: ЕСЛИ это сообщение категория «признакам» И пользовательское поле «featuredexpiredays» меньше, чем через несколько дней после публикации, получите сообщение.

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

Есть ли у вас какие-либо предложения о том, как это сделать, или, альтернативно, предложения по-другому заставить мой сайт вести себя таким образом? Спасибо!

Я нашел это: http://codex.wordpress.org/Displaying_Posts_Using_a_Custom_Select_Query
Я изменил дату, чтобы получить последние 15 дней. Он непроверен, но должен работать.

$expireDays = '15'; $querystr = " SELECT $wpdb->posts.* FROM $wpdb->posts, $wpdb->postmeta WHERE $wpdb->posts.ID = $wpdb->postmeta.post_id AND $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' AND $wpdb->posts.post_date >= ( CURDATE() - INTERVAL $expireDays DAY ) ORDER BY $wpdb->posts.post_date DESC "; $pageposts = $wpdb->get_results($querystr, OBJECT); 

Возможно, проще установить дату истечения срока действия, а не период, тогда вы можете сделать мета-запрос для сообщений с датами истечения срока, которые больше, чем сегодня:

 $args = array( 'posts_per_page' => -1, 'meta_key' => 'expiration_date', 'meta_value' => date('Ym-d'), 'meta_compare' => '>=', 'orderby' => 'meta_value', 'order' => 'ASC' ); $posts = new WP_Query($args);