Как вывести посты разных категорий внутри foreach?

Для вывода постов разных категорий внутри цикла foreach в WordPress, вам понадобится использовать функцию get_posts(), чтобы получить посты из каждой категории, а затем отобразить их на странице.

Вот пример кода, который поможет вам решить эту задачу:

// Получить список всех категорий
$categories = get_categories();

// Проход по каждой категории
foreach ($categories as $category) {

    // Получение ID категории
    $category_id = $category->cat_ID;

    // Получение постов из текущей категории
    $args = array(
        'category' => $category_id,
        'posts_per_page' => -1 // Получение всех постов из категории
    );

    $posts = get_posts($args);

    // Проверка, есть ли посты в текущей категории
    if ($posts) {

        // Вывод заголовка категории
        echo '<h2>' . $category->name . '</h2>';

        // Вывод каждого поста в текущей категории
        foreach ($posts as $post) {
            setup_postdata($post);

            // Вывод заголовка и контента поста
            echo '<h3>' . get_the_title() . '</h3>';
            echo '<div>' . get_the_content() . '</div>';
        }

        // Сброс данных о посте
        wp_reset_postdata();
    }
}

В этом коде мы используем функцию get_categories() для получения списка всех категорий. Затем мы проходимся по каждой категории с помощью цикла foreach. Внутри цикла мы получаем ID категории и используем его для создания аргументов (параметров) для функции get_posts(). Здесь мы указываем категорию и количество постов, которые хотим получить. Затем мы вызываем функцию get_posts(), чтобы получить список постов из текущей категории.

Если в текущей категории есть посты, мы выводим заголовок категории с помощью свойства name объекта категории и выводим каждый пост с помощью функций get_the_title() и get_the_content(). Важно также вызвать функцию setup_postdata($post), чтобы установить данные о текущем посте.

Наконец, после завершения цикла мы вызываем функцию wp_reset_postdata(), чтобы сбросить данные о последнем полученном посте.

Надеюсь, данное решение поможет вам вывести посты разных категорий внутри цикла foreach в WordPress.