Создать меню, которое копирует мою собственную иерархию таксономии в WordPress

У меня есть пользовательский тип записи ("продукты") со связанной пользовательской таксономией ("product_type"). Поэтому, когда я создаю продукт, я выбираю, к какой категории он относится.

Таксономия является иерархической и выглядит следующим образом:

Category 1
    Sub-Category 1.1
    Sub-Category 1.2
    Sub-Category 1.3
Category 2
Category 3
    Sub-Category 3.1
    Sub-Category 3.2
etc, etc

То, что я хочу (и не знаю, как это сделать), - это создать меню, которое динамически копирует мои таксономии со связанными с ними продуктами.

Рендеринг HTML должен быть примерно таким:

<ul>
    <!--first level-->
    <li>
        <a href="#">Category 1</a>
        <ul>
            <!--second level-->
            <li>
                <a href="#">Sub-category 1.1</a>
                <!--third level-->
                <ul>
                    <li><a href="#">product</a></li>
                    <li><a href="#">product</a></li>
                </ul>
            </li>


            <!--second level-->
            <li>
                <a href="#">Sub-category 1.2</a>
                <!--third level-->
                <ul>
                    <li><a href="#">Product</a></li>
                    <li><a href="#">Product</a></li>
                </ul>
            </li>
        </ul>
    </li>

    <!--first level-->
    <li class="first-level">
        <a href="#">Category 2</a>
        <ul>
            <!--second level-->
            <li><a href="#">Product</a></li>

            <!--second level-->
            <li><a href="#">Product</a></li>

            <!--second level-->
            <li><a href="#">Product</a></li>
        </ul>
    </li>
</ul>

Я знаю HTML, но я не слишком разбираюсь в php.

Кто-нибудь может указать мне правильное направление для достижения этой цели?

Спасибо!

1 ответ

Решение

Пройдя некоторое время, я решил, что лучше заплатить кому-нибудь, чтобы это выяснить, и тут я нашел решение " http://www.wpquestions.com/question/show/id/8543".

Спасибо "Харипрасад" за решение.

<?php

$args = array('type'=> 'products','parent'=> 0,'child_of'=>0,'orderby'=> 'id','order'=> 'ASC','hide_empty'=> 0,'taxonomy'=> 'product_type',);

$categories = get_categories( $args );

echo '<ul>';

foreach ( $categories as $category ) {

            echo '<a href="' . get_category_link( $category->term_id ) . '">' . $category->name . '</a>';

            query_posts(array( 'post_type' => 'products','parent'=> 0,'child_of'=>0,'showposts' => -1,'tax_query' => array(

            array('include_children'=>false,

            'taxonomy' => 'product_type',

            'terms' => $category->term_id,

            'field' => 'term_id',

                )

            ),

            'orderby' => 'title',

            'order' => 'ASC' )

            );

            if(have_posts())

            {

                echo '<ul>';

            while ( have_posts() ) : the_post();

            echo '<li>';

                ?><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><?php 

            echo '</li>';

            endwhile;

            echo '</ul>';

            }

            wp_reset_query();

    $subargs = array('type'=> 'products','child_of'=> $category->term_id,'orderby'=> 'id','order'=> 'ASC','hide_empty'=> 0,'taxonomy'=> 'product_type',);

    $subcategories = get_categories( $subargs );

    if($subcategories)

    {

        echo '<ul>';

        foreach ( $subcategories as $subcategory ) {

            echo '<a href="' . get_category_link( $subcategory->term_id ) . '">' . $subcategory->name . '</a>';

            query_posts(array( 'post_type' => 'products','showposts' => -1,'tax_query' => array(

            array(

            'taxonomy' => 'product_type',

            'terms' => $subcategory->term_id,

            'field' => 'term_id',

                )

            ),

            'orderby' => 'title',

            'order' => 'ASC' )

            ); 

            while ( have_posts() ) : the_post();

            echo '<li>';

                ?><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><?php 

            echo '</li>';

            endwhile;

            wp_reset_query();

        }

        echo '</ul>';   

    }

}

echo '</ul>';

?>
Другие вопросы по тегам