#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()