相关类别按类别排序帖子

时间:2019-12-13 作者:Bram Roos

如何按类别排序以下自定义帖子,如:

Cat title

玩家1

玩家2

Cat title 2

玩家5

播放器7

至于下面的代码是我的知识所在,所以任何建议都是非常感谢的!

<?php
                $player_tax_terms = wp_get_object_terms( $post->ID, \'players_cat\', array(\'fields\' => \'ids\') );
                $args = array(
                    \'post_type\'        => \'players\',
                    \'post_status\'      => \'publish\',
                    \'posts_per_page\'   => -1,
                    \'tax_query\'        => array(
                        array(
                            \'taxonomy\' => \'players_cat\',
                            \'field\'    => \'id\',
                            \'terms\'    => $player_tax_terms
                        )
                    ),
                    \'post__not_in\'     => array ($post->ID),
                    \'meta_key\'         => \'player_number\',
                    \'orderby\'          => \'meta_value_num\',
                    \'order\'            => \'ASC\'
                );
                $related_items = new WP_Query( $args );

                if ($related_items->have_posts()) : while ( $related_items->have_posts() ) : $related_items->the_post(); ?>

                    <a href="<?php the_permalink() ?>" class="cell player">

                        <?php if ( has_post_thumbnail() ): ?>

                            <?php the_post_thumbnail(\'thumbnail\'); ?>

                        <?php else: ?>
                            <figure class="avatar"></figure>

                        <?php endif; ?>

                        <div class="title">
                            <?php the_title( \'<h5>\', \'</h5>\' ) ?>
                            <?php if( get_field(\'player_position\') ): ?>
                                <p><?php the_field(\'player_position\'); ?></p>
                            <?php endif; ?>
                        </div>
                        <?php if( get_field(\'player_number\') ): ?>
                            <span><?php the_field(\'player_number\'); ?></span>
                        <?php endif; ?>
                    </a>

                <?php endwhile; endif;
                wp_reset_postdata();
                ?>

            </div>
        </div>

1 个回复
SO网友:GaryL

你有几个障碍要克服。。。

1) 您可以为每个帖子设置多个类别代码,因此它们不是正常的查询变量(这不是一个真正的障碍,但您可能会在多个类别下重复出现同一帖子)。

2) 类别标题比类别代码“更远”1个链接(就SQL查询而言)。i、 e.将职位连接到类别代码,然后将这些代码连接到代码标题。这更是一个挑战。

THIS POST 显示了一个类似的问题,解决方案是获取所有类别,然后对每个类别运行筛选查询,并显示该类别的帖子列表。也许这已经足够接近你想要的了?

相关推荐

Categories manage

我正在尝试向CPT中添加特定类别,只有在添加新帖子时,您才能看到与这些帖子类型相关的类别。此外,我希望能够从后端添加类别,而不是从代码添加类别,因为我有很多类别将要更改。如果有一个插件可以做到这一点,那很好,但我也希望了解它是如何做到的。非常感谢