Получить пользовательский пост, архивированный по значению мета-поля в WordPress

#wordpress

#wordpress

Вопрос:

Я использую cpt-archive плагин для создания архива по месяцам в моем сообщении WordPress. Вот плагин, использующий этот код,

 $query = "SELECT YEAR( post_date ) AS `year`, 
    MONTH(post_date) AS `month`, 
    count(ID) as posts 
    FROM $wpdb->posts $join $where 
    GROUP BY YEAR(post_date), 
    MONTH(post_date) 
    ORDER BY post_date DESC $limit";

$arcresults = $wpdb->get_results($query);
  

Здесь он работает нормально post_date . Мне нужно настроить это, чтобы получить архивацию по мета-полям. У меня есть два мета-ключа, такие как _event_start_date и _event_end_date .

Редактировать

теперь я получаю все пользовательские месяцы типа post на основе _event_end _date со следующим запросом

 $months = $wpdb->get_results("SELECT DISTINCT YEAR(meta_value) AS year, MONTH(meta_value) AS month FROM $wpdb->postmeta WHERE meta_key = '_event_end_date' WHERE meta_value <= now( )ORDER BY meta_value ASC");
  

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

Комментарии:

1. Что содержит переменная $join? Вам понадобится еще одно соединение, так как мета-поля хранятся в wp_postmeta.

2. мы можем удалить $join $где, .

Ответ №1:

Почему вы не используете wp_get_archives?

Что-то вроде этого

 <?php wp_get_archives( array( 'type' => 'monthly', 'meta_value' => array('_event_start_date', '_event_end_date')  ) ); ?>
  

Комментарии:

1. Почему этот ответ поддержан? meta_value не поддерживается wp_get_archives()