Те, кто посвятил мой ответ, были для меня непростой задачей, особенно для начинающего. Поэтому я экспериментировал и нашел способ понять это. Вот код, который работает отлично.
<?php
$args = array(
'orderby' => 'name',
'hide_empty'=> true,
);
$categories = get_categories($args);
foreach ($categories as $cat) {
?>
<h5><?php echo $cat->name; ?></h5>
<?php
$args = array('post_type' => 'books_section', 'posts_per_page' => -1, 'category_name' => $cat->name);
$the_query = new WP_Query($args);
while ($the_query -> have_posts()): $the_query -> the_post();
?>
//Rest of the HTML goes here to style books
<?php endwhile;?>
<?php
}
?>
То, что я сделал в этом коде: сначала я запустил foreach l oop, чтобы получить все категории по одной, а затем в этом l * 1006. * (вложенный l oop) получил все мои сообщения за некоторое время l oop, дополнительно добавив параметр имени категории, так что будут выбраны только те сообщения, которые имеют указанное выше имя категории, сгенерированное foreach l oop. Таким образом, когда первый раз внешний l oop получает категорию, он перемещается внутрь, в то время как l oop получает все сообщения, связанные с категорией, а затем покидает внутренний l oop. Процесс повторяется снова и снова, и, наконец, я получил все свои посты в соответствии с их категориями.