Я только что создал две сводные страницы для двух своих блогов: https://helloacm.com/archives-of-pagesposts/ и http://www.codingforspeed.com/archives-of-pagesposts/.
На обеих страницах все статьи (включая страницы) отсортированы по месяцам. Количество комментариев к каждому сообщению будет подсчитано и напечатано после заголовка сообщения в скобках.
Это может быть полезно для перечисления всех статей/страниц для пользователей и поисковых систем, поэтому эта страница также служит картой сайта.
Как вы можете видеть на сводной странице, сначала выводится общее количество сообщений/страниц, а для каждого месяца (только если в этом месяце опубликовано хотя бы одно сообщение/страница) будут генерироваться ссылки с отступом.
Итак, как мы собираемся этого добиться? Прежде всего, в WordPress вам понадобятся некоторые плагины, чтобы иметь возможность включать PHP-код в записи/страницы. Перейдите в панель управления WordPress после входа в систему и перейдите к «Плагины» и «Добавить новый». Найдите «Включить PHP», и вы найдете множество вариантов.
Затем скопируйте и вставьте следующий код PHP в один файл PHP в корневом каталоге темы.
Алгоритм здесь состоит в том, чтобы сгруппировать по годам и месяцам в SQL и зациклить каждый месяц и получить все сообщения/страницы за этот месяц. Используйте глобальную переменную $wpdb для запуска оператора SQL. Используйте get_var для операторов SQL с одной переменной, таких как select count(1), и используйте get_results для нескольких строк.
Измените имя таблицы wordpress wp_posts, если префикс не wp_. Однако вы можете использовать $wpdb->posts для получения имени таблицы сообщений, что является лучшим методом. Отфильтруйте сообщения/страницы, соответствующим образом изменив соответствующие операторы SQL (где причина).
Кроме того, лайки в Facebook учитываются и также включаются в скобки. Для этого вам нужно будет создать еще одну таблицу с парой ключей для идентификатора статьи и числа лайков. Вам нужно будет настроить crontab, который запускается, возможно, один раз в час, чтобы обновлять количество лайков в Facebook (или других социальных сетях) для каждого сообщения. Об этом будет рассказано в другом отдельном уроке.