Intereting Posts
Если сообщение имеет две категории с разными разрешениями, что произойдет? Как фильтровать функцию wordpress core? Программная настройка цены продукта Woocommerce отменить ответную ссылку приводит к ошибке 404 Автоматическое заполнение пользовательского поля для публикации post / update Установите TRUE или FALSE на основе значения параметра wp_localize_script Как изменить заголовок сообщения WordPress? Проблема с wp_query с post_type = page реализация моего wp_query с использованием класса $ wpdb get_edit_tag_link ничего не возвращает wp_login_form () игнорирование логического действия login_form Рекомендации по созданию и обработке форм с помощью плагинов? Штрих-код WordPress в содержимом, вывод в боковой панели? Можно ли использовать admin-ajax.php в интерфейсе? Слишком большая ошибка рекурсии при выборе изображения из библиотеки изображений для двух разных мета-полей в одном сообщении

Показать сообщения за кварталом

Как я могу опубликовать сообщения автора WordPress по кварталам в author.php ?

Текущий актуальный код author.php выглядит следующим образом (сообщение является специальным типом «пресс-упоминания», FYI).

Это представляет собой единый список всех публикаций автора. Но как я могу разбить этот список на сегменты с ежеквартальными заголовками, т.е. «2015 Q3», «2015 Q4», 2016 Q1 »,« 2016 Q2 »?

Четверть – четыре трехмесячных периода с 1 января.

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

  <!-- Press appearances --> <?php // Count press appearances $post_count = $wpdb->get_var("SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = '" . $curauth->ID . "' AND post_type = 'pressmention' AND post_status = 'publish'"); ?> <h5><?php echo '<span class="label label-primary">'.$post_count.'</span>'; ?> Media appearances:</h5> <table class="table table-striped table-sm"> <tbody> <?php // Show custom post list - http://wordpress.stackexchange.com/questions/178739/displaying-custom-post-types-in-author-php $args = array( 'post_type' => 'pressmention' , 'author' => get_queried_object_id(), // this will be the author ID on the author page 'showposts' => 200 ); $custom_posts = new WP_Query( $args ); if ( $custom_posts->have_posts() ): while ( $custom_posts->have_posts() ) : $custom_posts->the_post();?> <tr> <!-- changed th, removed scope="row", was width="110" and "125" --> <td class="col-xs-2"><?php the_time('M d, Y'); ?></td> <td class="col-xs-3"><img src="https://plus.google.com/_/favicon?domain=<?php echo get_post_meta( $post->ID,'press_mention_information_publication-url',true); ?>" alt="Publication"> <?php echo get_post_meta( $post->ID,'press_mention_information_publication-name',true); ?></td> <td class="col-xs-7"><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>"><?php the_title(); ?></a></td> </tr> <?php endwhile; else: ?> <!-- changed th, removed scope="row" --> <tr><td colspan="2">No posts.</td></tr> <?php endif; ?> </tbody> </table> 

Определим вспомогательную функцию для отображения месяца в квартал :

 function wpse_get_month2quarter( $month ) { return ceil( $month / 3 ); } 

Затем мы могли бы рассмотреть, что делать с входными значениями, которые не являются целыми числами в множестве {1, ..., 12} .

ps: Я получил идею формулы из этого блога Excel Гашпера Каменшека

Чтобы получить Квартал в цикле, мы можем, например, использовать:

 echo wpse_get_month2quarter( get_the_date( 'n' ) ); 

пример

Вот одна идея для вашего цикла:

 if ( $custom_posts->have_posts() ) : $prev = null; while ( $custom_posts->have_posts() ) : $custom_posts->the_post(); $current = sprintf( '%d Q%d', get_the_date( 'Y' ), wpse_get_month2quarter( get_the_date( 'n' ) ) ); if( $prev !== $current ) { printf( '<tr><td colspan="3">%s</td></tr>', $current ); $prev = $current; } // ... etc ... 

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

Но есть много способов реализовать это.

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