0

我目前正在运行查询以提取分类的所有术语并列出每个术语下的帖子。

我所做的工作正常。我尝试添加“hide_empty”参数并将其设置为 false,以便我可以显示空术语。出于某种原因,它只是不工作。

这是我的查询:

    <?php

// List posts by the terms for a custom taxonomy of any post type

$post_type = 'streams';
$tax = 'programmes';

$tax_terms = get_terms('programmes', array(
    'hide_empty' => 0,
    'hierarchical' => 0

 ) );
if ($tax_terms) {
    foreach ($tax_terms  as $tax_term) {
    $args = array(
        'post_type' => $post_type,
        "$tax" => $tax_term->slug,
        'post_status' => 'publish',
        'posts_per_page' => -1,
        'caller_get_posts'=> 1
    );

        $my_query = null;
        $my_query = new WP_Query($args);

        if( $my_query->have_posts() ) : ?>

            <p class="breadcrumb"><?php echo $tax_term->name; ?></p>
            <ul class="taxlist">
            <?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?>

                <li id="post-<?php the_ID(); ?>">
                    <a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a>
                </li>

            <?php endwhile; // end of loop ?>

            </ul>

        <?php else : ?>
        <?php endif; // if have_posts()
        wp_reset_query();

    } // end foreach #tax_terms
}
?>

任何帮助将不胜感激。

干杯,丹

4

1 回答 1

2

您正在循环浏览分类术语,但如果没有与当前正在循环的术语相关联的帖子,则您不会输出任何内容。如果您希望输出$term->name不管,您应该将该部分代码更改为 -

$my_query = null;
$my_query = new WP_Query($args);

<p class="breadcrumb"><?php echo $tax_term->name; ?></p>

if( $my_query->have_posts() ) : ?>

    <ul class="taxlist">
于 2012-10-24T12:03:41.280 回答