[Php] WordPress에 현재 포스트 맞춤형 분류 표시


Answers

누군가가 부모별로 그룹화하여 표시하려는 경우에 대비해.

기본적으로 위와 같은 대답입니다. 이 답변을 다른 게시물 ( https://stackoverflow.com/a/12144671) 로 그룹화 (ID 및 부모 별)했습니다.

객체와 함께 사용하도록 수정 된 기능 :

function object_group_assoc($array, $key) {
    $return = array();
    foreach($array as $object) {
        $return[$object->$key][] = $object;
    }
    return $return;
}

최종 기능 :

// get taxonomies terms links
function custom_taxonomies_terms_links() {
    global $post, $post_id;
    // get post by post id
    $post = &get_post($post->ID);
    // get post type by post
    $post_type = $post->post_type;
    // get post type taxonomies
    $taxonomies = get_object_taxonomies($post_type);

    $out = "<ul>";
    foreach ($taxonomies as $taxonomy) {
        $out .= "<li>".$taxonomy.": ";
        // get the terms related to post
        $terms = get_the_terms( $post->ID, $taxonomy );

        if ( !empty( $terms ) ) {
            $terms_by_id = object_group_assoc($terms, 'term_id');
            $terms_by_parent = object_group_assoc($terms, 'parent');
            krsort($terms_by_parent);

            foreach ( $terms_by_parent as $parent_id => $children_terms ){

                if($parent_id != 0){//Childs
                    //Add parent to out string
                    $parent_term = $terms_by_id[$parent_id][0]; //[0] because object_group_assoc return each element in an array

                    $out .= '<li><a href="' .get_term_link($parent_term->slug, $taxonomy) .'">'.$parent_term->name.'</a>';

                    //Add children to out string
                    $out .= '<ul>';
                    foreach ($children_terms as $child_term) {

                        $out .= '<li><a href="' .get_term_link($child_term->slug, $taxonomy) .'">'.$child_term->name.'</a></li>';
                    }
                    $out .= '</ul></li>';

                } else {//parent_id == 0

                    foreach ($children_terms as $child_term) {
                        if(!array_key_exists($child_term->term_id, $terms_by_parent)){//Not displayed yet becouse it doesn't has children
                            $out .= '<li><a href="' .get_term_link($child_term->slug, $taxonomy) .'">'.$child_term->name.'</a></li>';
                        }

                    }
                    $out .= '</ul></li>';
                }
            }

        }
        $out .= "</li>";
    }
    $out .= "</ul>";
    return $out;
}

같은 방식으로 사용되었습니다.

<?php echo custom_taxonomies_terms_links();?>

참고 : 한 수준의 하위 용어로 작업하십시오.

Question

WordPress에서 맞춤 분류를 만들었고 현재 게시물 분류를 게시물의 목록에 표시하고 싶습니다.

"Job Discipline"이라는 사용자 지정 분류 체계를 표시하기 위해 다음 코드를 사용하고 있습니다.

<ul>
            <?php $args = array('taxonomy' => 'job_discipline'); ?>
            <?php $tax_menu_items = get_categories( $args );
            foreach ( $tax_menu_items as $tax_menu_item ):?>
            <li>
                Job Discipline: <a href="<?php echo get_term_link($tax_menu_item,$tax_menu_item->taxonomy); ?>">
                    <?php echo $tax_menu_item->name; ?>
                </a>
            </li>
            <?php endforeach; ?>
</ul>

그것은 내가리스트하고 싶은 많은 택 소노 미의 하나 일뿐입니다.

문제 는 위의 코드가 현재 게시물 분류 체계가 아닌 하나 이상의 게시물이있는 모든 "직업 분야"를 표시하고 있다는 것입니다.

이 문제를 어떻게 해결할 수 있습니까?