Как отобразить пользовательскую таксономию со страницы архива относительно другой пользовательской таксономии - PullRequest
0 голосов
/ 19 декабря 2018

www.mysite.com / европа / австралия / мельбурн

"города" - это мой пользовательский тип поста, и под ним есть две пользовательских таксономии:

Custom taxonomy called "continents"
Custom taxonomy called "country"

Как отобразить страныпод страницей архива континента

for example (these are post created under "cities" custom post type):

Post 1
- Europe
- australia

Post 2
- Europe
- United kingdom

Post 3
- Europe
- Germany

Post 4
- Asia
- China

Поэтому, когда я нахожусь на странице архива континента, она должна отображаться:

www.mysite.com/europe/

 - australia
 - united kingdom
 - germany

, поскольку она проверяется с континентом "Европа"

Вот мой код, и он не работает

$taxonomies = get_post_taxonomies( $post );

    if(sizeof($taxonomies)){

        foreach($taxonomies as $taxonomy){

            $term_lists = wp_get_post_terms($post->ID, $taxonomy, array("fields" => "slugs"));

            if(sizeof($term_lists) && is_array($term_lists)){

                $args_a = array(
                    'tax_query' => array(
                        'relation' => 'OR',
                        array(
                            'taxonomy' => 'country',
                            'terms' => $term_lists,
                            'field' => 'slug',
                            'operator' => "EXISTS"
                        )
                    )
                );              

            echo '<br><strong style="color:blue;">'.$taxonomy.'</strong>';
            echo '<br>---'.$term_lists[0];

            }
        }
    }

1 Ответ

0 голосов
/ 19 декабря 2018

Я думаю, вот что вам нужно.

    <?php 
        $get_parent_cats = array(
            'parent' => '0' //get top level categories only
        ); 

        $all_categories = get_categories( $get_parent_cats );//get parent categories 

        foreach( $all_categories as $single_category ){
            //for each category, get the ID
            $catID = $single_category->cat_ID;

            echo '<li><a href=" ' . get_category_link( $catID ) . ' ">' . $single_category->name . '</a>'; //category name & link
             echo '<ul class="post-title">';

            $query = new WP_Query( array( 'cat'=> $catID, 'posts_per_page'=>10 ) );
            while( $query->have_posts() ):$query->the_post();
             echo '<li><a href="'.get_the_permalink().'">'.get_the_title().'</a></li>';
            endwhile;
            wp_reset_postdata();

            echo '</ul>';
            $get_children_cats = array(
                'child_of' => $catID //get children of this parent using the catID variable from earlier
            );

            $child_cats = get_categories( $get_children_cats );//get children of parent category
            echo '<ul class="children">';
                foreach( $child_cats as $child_cat ){
                    //for each child category, get the ID
                    $childID = $child_cat->cat_ID;

                    //for each child category, give us the link and name
                    echo '<a href=" ' . get_category_link( $childID ) . ' ">' . $child_cat->name . '</a>';

                     echo '<ul class="post-title">';

                    $query = new WP_Query( array( 'cat'=> $childID, 'posts_per_page'=>10 ) );
                    while( $query->have_posts() ):$query->the_post();
                     echo '<li><a href="'.get_the_permalink().'">'.get_the_title().'</a></li>';
                    endwhile;
                    wp_reset_postdata();

                    echo '</ul>';

                }
            echo '</ul></li>';
        } //end of categories logic ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...