列出当前任期中的子术语和职位

时间:2012-08-23 作者:NestedWeb

使用此代码,父术语页面列出所有子术语,子术语页面列出当前术语中的所有帖子,单个页面列出一个大的术语平面列表(层次结构)。

现在

父术语页正常。

当它是子术语页面时,我想列出所有子术语(不使用此代码显示)+当前术语中的帖子(显示)。

当它是单篇文章时,我想列出与子术语页相同的内容。

        $term = get_queried_object();
        $tax = \'ntp_package_type\';
        $parents = $term->parent;
        $term_id = $term->term_id;

        if($parents == 0){
            wp_list_categories( array (
                            \'taxonomy\'  => \'ntp_package_type\',
                            \'pad_counts\'=> 0,
                            \'title_li\'  => \'\',
                            \'child_of\'  => $term_id,
                            )
            );
        }
        elseif (is_tax($tax, $term->name)){

            $args = array(
                    \'post_type\' => \'ntp_package\',
                    $tax => $term->name,
            );
            $wp_query = new WP_Query($args);
            if( $wp_query->have_posts() ):
            while ( $wp_query->have_posts() ) : $wp_query->the_post();
            echo "<p><a href=\\"".get_permalink()."\\">".$post->post_title."</a></p>";
            endwhile;
            endif;

        }
        elseif (is_single()){

        }
这是一个侧栏子导航。这样做对吗?我真的很感激任何帮助。

1 个回复
最合适的回答,由SO网友:NestedWeb 整理而成

好吧,我不知道这看起来怎么样,但我已经得到了我想要的。

<?php
        $term = get_queried_object();
        $tax = \'ntp_package_type\';
        $parents = $term->parent;
        $term_id = $term->term_id;

        if($parents == 0 && !is_single()){
        wp_list_categories( array (
                            \'taxonomy\'  => \'ntp_package_type\',
                            \'pad_counts\'=> 0,
                            \'title_li\'  => \'\',
                            \'child_of\'  => $term_id,
                            )
            );  
        }

        elseif ($parents > 0 && is_tax($tax, $tax->name)){

            $args = array(
                    \'post_type\' => \'ntp_package\',
                    $tax => $term->name,
            );
            echo "<h2>".$term->name."</h2>";

            $wp_query = new WP_Query($args);
            if( $wp_query->have_posts() ):
            while ( $wp_query->have_posts() ) : $wp_query->the_post(); 

            echo "<p><a href=\\"".get_permalink()."\\">".$post->post_title."</a></p>";
            endwhile;
            endif;
            wp_reset_postdata();

            wp_list_categories( array (
                \'taxonomy\'  => \'ntp_package_type\',
                \'pad_counts\'=> 0,
                \'title_li\'  => \'\',
                \'child_of\'  => $term->parent,
                \'exclude\'   => $term_id,
                )
            );
        }

        elseif(is_single()){

        $single = get_queried_object();
        $sing_id = $single->ID;

        $singterm = wp_get_post_terms($sing_id, $tax);
        $singterm_slug = $singterm[0]->slug;
        $singterm_parent = $singterm[0]->parent;
        $singterm_id = $singterm[0]->term_id;

        $args = array(
                \'taxonomy\'  => $tax,
                \'term\'      => $singterm_slug,
        );
        ?>

        <h2>
        <a href="<?php echo get_term_link($singterm_slug, $tax); ?>"><?php echo $singterm[0]->name; ?> </a>
        </h2>

        <?php
        $singquery = new WP_Query($args);
        while ($singquery->have_posts()) : $singquery->the_post();
        ?>

        <p>
        <a href="<?php echo get_permalink(); ?>"><?php the_title(); ?></a>
        </p>

        <?php
        endwhile;
        wp_reset_postdata();


        wp_list_categories( array (
            \'taxonomy\'  => \'ntp_package_type\',
            \'pad_counts\'=> 0,
            \'title_li\'  => \'\',
            \'child_of\'  => $singterm_parent,
            \'exclude\'   => $singterm_id,
            )
        );  

        }


        ?>

结束

相关推荐

.sub-menu or .children?

我正在使用测试安装(使用InstantWP)开发一个主题,但当我将其上载到临时站点时,由于某种原因,导航菜单看起来膨胀了。在查看了源代码后,发现出于某种原因,我的测试安装使用了该类.sub-menu 而临时安装使用.children.两次安装都是3.3.1的新安装,安装了完全相同的插件。为什么两次安装之间会有这样的差异?