Упорядочить пользовательский тип публикации по дате события в массиве meta_key в WordPress

Я изучил множество ответов и решений, и мне трудно это реализовать.

Моя цель: в WordPress я хочу заказать записи из пользовательского типа сообщения (события) для отображения в соответствии с пользовательским полем даты. Я видел другие решения для этого, но они не работают для меня, так как мой пользовательский ключ — это массив в мета-значении, а решения не были.

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

Я использую мета-ключ _my_meta, и чтобы получить пост мета я использую get_post_meta($post->ID,'_my_meta',TRUE); который я положу в переменную ($meta). Все поля, которые я вызываю, находятся в массиве, поэтому $meta['img'] может быть пользовательское изображение, и $meta['date'] может быть пользовательская дата.

В настоящее время у меня все работает и работает правильно из пользовательского цикла WP_Query. Я просто хочу, чтобы посты извлекались и упорядочивались по настраиваемому текстовому полю даты.

Вот цикл, который я использую:

<?php
$args = array(
'post_type' => 'event',
'order' => 'ASC',
'orderby' => 'meta_value',
'meta_key' => '_my_meta',
'meta_query' => array(
array(
'key' => '_my_meta',
'value' => date('Ymd'),
'compare' => '>='
)
)
);
$new = new WP_Query( $args );
while ($new->have_posts()) : $new->the_post();
?>

Итак, я вытаскиваю из типа записи «событие», в порядке возрастания, упорядочивая по моему мета-значению. Пользовательское поле — это просто текстовое поле, в котором я поместил дату в формате «20150809» (что равно date('Ymd')).

Meta_key это _my_metaОднако я действительно хочу получить информацию от get_post_meta($post->ID,'_my_meta',TRUE)['date'], Это вообще возможно? Я уверен, что метод, используемый в functions.php, не идеален, но это то, с чем я должен работать.

Я пытался изменить meta_value в meta_value_numи это двигает вещи вокруг, но не идеальным способом. В течение месяца, дата, кажется, в порядке, но месяцы все не в порядке.

Я вставил несколько произвольных дат, и с этой текущей настройкой он отображается как:

November 4th
November 6th
December 5th
August 9th

Любая помощь приветствуется. Спасибо!!

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector