분류 체계가 첨부 된 게시물 유형 가져 오기


13

분류법이나 용어가 주어지면 분류법이 첨부 된 모든 / 모든 게시물 유형을 가져올 수 있습니까?

예를 들어, 내장 분류 체계를 알고 category있거나 분류 체계 의 용어를 사용하면 ? 의 분류 체계 category를 리버스 엔지니어링하는 기능 categorypost있습니까?

불필요한 정보

게시물 유형을 구체적으로 알아야하는 분류 용어로 일부 사용자 정의 필드를 사용하고 있지만 URL의 게시물 유형 매개 변수가 어떤 이유로 든 문제가 발생하지 않는 경우.

답변:


12

전역 $wp_taxonomies변수를 들여다 보면 관련 개체 유형이 나타납니다.

이 기능이나 핵심 기능을 수행하는 더 좋은 방법이있을 수 있지만 다음을 시도해 볼 수 있습니다.

function wpse_172645_get_post_types_by_taxonomy( $tax = 'category' )
{
    global $wp_taxonomies;
    return ( isset( $wp_taxonomies[$tax] ) ) ? $wp_taxonomies[$tax]->object_type : array();
}

그런 다음 기본 설정에 대해 다음을 얻습니다.

$out = wpse_172645_get_post_types_by_taxonomy( 'category' );
print_r( $out );

출력 :

Array
(
    [0] => post
)

8

와 반대의 작업을 수행 할 수 있습니다 get_object_taxonomies. 이를 결합하여 get_post_types포스트 유형을 반복하여 각각에 등록 된 분류 체계를 확인하십시오.

편집 -다음은 더티 전역을 사용하지 않고 @birgire의 함수와 동일한 출력을 생성하는 예입니다.

function wpse_172645_get_post_types_by_taxonomy( $tax = 'category' ){
    $out = array();
    $post_types = get_post_types();
    foreach( $post_types as $post_type ){
        $taxonomies = get_object_taxonomies( $post_type );
        if( in_array( $tax, $taxonomies ) ){
            $out[] = $post_type;
        }
    }
    return $out;
}

3

$wp_taxonomies워드 프레스가 get_taxonomy()(2.3.0 이후 코어에서) 분류 체계에 액세스 하는 기능을 가지고 있기 때문에 전역 변수를 직접 사용할 필요가 없습니다 . WordPress 4.7.0부터 리턴 유형은 WP_Taxonomy특성 이있는 오브젝트입니다.$object_type

$taxonomy = get_taxonomy( 'category' );
print_r( $taxonomy->object_type );
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.