Получение категорий WordPress для пользовательского типа записи

#php #wordpress

#php #wordpress

Вопрос:

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

Это код, который у меня есть до сих пор

 function display_receipess($atts){
    $postArg = array(
        'post_type'=>'receipe',
        'posts_per_page'=>-1,
        'order'=>'desc',
    );

    $getPost = new wp_query($postArg);
    global $post;
    if($getPost->have_posts()){
        echo '<div class="row">';
            while ( $getPost->have_posts()):$getPost->the_post();
                $terms = get_the_terms($post->ID, 'category' );
                echo '<div class="xol-xs-12 col-sm-4 col-md-3 
col-lg-3">';
                foreach ($terms as $term) {
                    echo "<h4>".$term_name = $term->name.'</h4>';
                    echo "<p>".$post->post_title."</p>";
                }

                echo '</div>';

            endwhile;
        echo '</div>';
    }


}
 

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

Ссылка на скриншот

Спасибо

Ответ №1:

Я надеюсь, что это решило вашу проблему

 <?php
    // get all the categories from the database
    $cats = get_categories(); 

    // loop through the categries
    foreach ($cats as $cat) {
            // setup the cateogory ID
            $cat_id= $cat->term_id;
            // Make a header for the cateogry

            // create a custom wordpress query
            query_posts("cat=$cat_idamp;posts_per_page=100amp;post_type=post");
            // start the wordpress loop!
            if (have_posts()){
                echo "<h2>".$cat->name."</h2>";
                while (have_posts()) : the_post(); ?>

                    <a href="<?php the_permalink();?>"><?php the_title(); ?></a>

                <?php endwhile; 
            } 
    } // done the foreach statement 
?>
 

Комментарии:

1. Спасибо за ваш ответ, это не сработало. С помощью исходного кода, который я опубликовал, я могу получить категории, единственная проблема заключается в том, что там, где в одной и той же категории более 1 сообщения, она дважды отображает одну и ту же категорию с разными сообщениями. prnt.sc/nc4ob5