в WordPress, как перечислять сообщения и категории вместе? - PullRequest
0 голосов
/ 23 мая 2019

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

Я пробовал следующее, но если у меня есть категория с 3 сообщениями, она будет перечислять ее 3 раза (для каждого сообщения)

            $post_thumbnail_id = get_post_thumbnail_id( $post_id ); $imgmeta = wp_get_attachment_metadata( $post_thumbnail_id );
                // check to see if in a category which is not > uncategorized or homepage items
            if (in_category('uncategorized') || in_category('item_left') || in_category('item_middle') || in_category('item_right')) {
                // check if the image is portrait or horizontal
                if ($imgmeta['width'] > $imgmeta['height']) { ?>

                    <div class="img_box_land sm_title img_box">

                    <a href="<?php the_permalink()?>?tagName=<?php single_tag_title(); ?>">
                        <div class="red_bg">
                            <?php the_post_thumbnail(); ?>
                        </div>
                        <p>
                            <?php the_title(); ?>
                        </p>
                    </a>
                </div>

                <?php } else { ?>

                    <div class="img_box_port sm_title img_box">

                    <a href="<?php the_permalink()?>?tagName=<?php single_tag_title(); ?>">
                        <div class="red_bg">
                            <?php the_post_thumbnail(); ?>
                        </div>
                        <p>
                            <?php the_title(); ?>
                        </p>
                    </a>
                </div>

            <?php } 

            } else {
            // this is for posts in a category    
            // check if the image is portrait or horizontal

              $category = get_the_category();  


                if ($imgmeta['width'] > $imgmeta['height']) { ?>

                    <div class="img_box_land sm_title img_box stacked">

                    <a href="<?php echo get_category_link($category[0]); ?>?tagName=<?php single_tag_title(); ?>">
                        <div class="red_bg">
                            <?php the_post_thumbnail(); ?>
                        </div>
                        <p>
                <?php echo $category[0]->cat_name; ?>
                        </p>
                    </a>
                </div>


                <?php } else { ?>


                    <div class="img_box_port sm_title img_box stacked">

                    <a href="<?php echo get_category_link($category[0]); ?>?tagName=<?php single_tag_title(); ?>">
                        <div class="red_bg">
                            <?php the_post_thumbnail(); ?>
                        </div>
                        <p>
                            <?php echo $category[0]->cat_name; ?>
                        </p>
                    </a>
                </div>
                <?php } } ?>


        <?php endwhile; endif; ?>

Полагаю, проблема в том, что он внутри цикла, но я не знаю, как заставить его работать иначе.

...