Wordpress列出所有类别和帖子

时间:2017-02-22 05:57:50

标签: php wordpress loops categories

我的代码大部分都在使用,但这是一个小问题。

我期待看到这个输出......

  • 国内
  • Ragdol

  • 帕格
  • 警犬

但相反,我得到了:

  • 国内
  • Ragdol
  • 帕格
  • 警犬

  • 国内
  • Ragdol
  • 帕格
  • 警犬

正如您所看到的,每个帖子都列在每个类别中,而不仅仅是每个帖子(对不起 - 无意间双关语)各自的类别。

这是我的代码:

<?php
$cat_args = array(
'taxonomy' => 'animal_category'
);

$categories = get_categories($cat_args);

foreach ( $categories as $category ) { 
$category_hero = get_field('hero', $taxonomy . '_' . $category->term_id); ?>

<div class="gallery">

    <div class="gallery-hero">
        <h2><?php echo $category->name; ?></h2>
        <img src="<?php echo $category_hero["sizes"]["Full"]; ?>" />
    </div>


    <?php
    $cat_ID = $category->id;
    $post_args = array(
            'showposts'         => -1,
            'post_type'         => 'gallery',
            'offset'            => 0,
            'category'          => $cat_ID
        );
    $posts = get_posts($post_args);

    foreach($posts as $post) {  ?>
        <div class="gallery-box">
            <?php $gallery_image = get_field( "photos"); ?>
            <a href="<?php the_permalink() ?>">
                <img src="<?php echo $gallery_image[0]["sizes"]["Medium"]; ?>" />
                <span><?php the_title(); ?></span>
            </a>
        </div>
    <?php } ?>


</div>
 

一切看起来都对我好。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您的代码出错。使用以下代码。我希望这会正常工作。

<?php
$cat_args = array(
    'taxonomy' => 'animal_category'
);

$categories = get_categories($cat_args);
foreach ( $categories as $category ) { 
$category_hero = get_field('hero', $taxonomy . '_' . $category->term_id); ?>
<div class="gallery">

    <div class="gallery-hero">
        <h2><?php echo $category->name; ?></h2>
        <img src="<?php echo $category_hero["sizes"]["Full"]; ?>" />
    </div>


    <?php
    $cat_ID = $category->term_id;
    $post_args = array(
            'showposts'         => -1,
            'post_type'         => 'gallery',
            'offset'            => 0,
            //'category'          => $cat_ID
            'tax_query' => array(
                array(
                    'taxonomy' => 'animal_category',
                    'field' => 'id',
                    'terms' => $cat_ID
                )
            )
        );
    $posts = get_posts($post_args);

    foreach($posts as $post) {  ?>
        <div class="gallery-box">
            <?php $gallery_image = get_field( "photos"); ?>
            <a href="<?php the_permalink() ?>">
                <img src="<?php echo $gallery_image[0]["sizes"]["Medium"]; ?>" />
                <span><?php the_title(); ?></span>
            </a>
        </div>
    <?php } ?>
</div>
<?php } ?>