programing

Wordpress는 slug와 함께 분류법 이름을 가져옵니다.

testmans 2023. 2. 24. 13:20
반응형

Wordpress는 slug와 함께 분류법 이름을 가져옵니다.

분류법 slug만을 가진 분류법 아이디나 이름을 어떻게 얻을 수 있나요?

제 생각엔 제가 찾고 있는 것은get_term_by()분류학을 위해서요.

편집 : WooCommerce 제품 속성의 세금 ID를 가져오려는 것을 지정해야 합니다.

감사해요.

WordPress는 slug에서 분류 정보를 가져오는 기능을 제공합니다.

$taxonomy_details = get_taxonomy( $slug );

이렇게 하면 분류 세부 정보가 개체로 반환되며, 여기에는 분류에 대한 다양한 레이블이 포함됩니다.예를 들어, 다음은 표준 카테고리 분류법을 호출할 때 반환되는 개체입니다.get_taxonomy( 'category' );

stdClass Object
(
    [labels] => stdClass Object
        (
            [name] => Categories
            [singular_name] => Category
            [search_items] => Search Categories
            [popular_items] => 
            [all_items] => All Categories
            [parent_item] => Parent Category
            [parent_item_colon] => Parent Category:
            [edit_item] => Edit Category
            [view_item] => View Category
            [update_item] => Update Category
            [add_new_item] => Add New Category
            [new_item_name] => New Category Name
            [separate_items_with_commas] => 
            [add_or_remove_items] => 
            [choose_from_most_used] => 
            [not_found] => No categories found.
            [menu_name] => Categories
            [name_admin_bar] => category
        )

    [description] => 
    [public] => 1
    [hierarchical] => 1
    [show_ui] => 1
    [show_in_menu] => 1
    [show_in_nav_menus] => 1
    [show_tagcloud] => 1
    [show_in_quick_edit] => 1
    [show_admin_column] => 1
    [meta_box_cb] => post_categories_meta_box
    [rewrite] => Array
        (
            [hierarchical] => 1
            [slug] => category
            [with_front] => 1
            [ep_mask] => 512
        )

    [query_var] => category_name
    [update_count_callback] => 
    [_builtin] => 1
    [cap] => stdClass Object
        (
            [manage_terms] => manage_categories
            [edit_terms] => manage_categories
            [delete_terms] => manage_categories
            [assign_terms] => edit_posts
        )

    [name] => category
    [object_type] => Array
        (
            [0] => post
        )

    [label] => Categories
)

출처 : https://codex.wordpress.org/Function_Reference/get_taxonomy

그 질문에 대한 답변은 받아들여진 답변이 아니기 때문에, 질문의 내용이 매우 오래된 질문이지만, 여기에 답변을 드립니다.

세 번째(필수) 인수get_term_by()는 분류법 자체의 이름이므로 이 함수를 사용할 수 없습니다.

get_taxonomies()를 사용할 수도 없습니다.그러면 전체 리라이트 어레이를 일치시켜야 하기 때문에 액세스 할 수 없습니다.

그래서 제가 찾은 유일한 방법은 개인 어레이를 사용하는 것이었습니다.$wp_taxonomies:

function get_tax_name_from_slug($slug){
  foreach ($wp_taxonomies as $key => $value) {
    if ($value->rewrite['slug'] === $slug){
        return $key;
    }
  }
}

Wordpress가 내부 데이터 구조에 액세스하지 않고 이 작업을 수행할 수 있는 방법을 제공했으면 합니다.

$args = array(
                    'post_type' => 'awards',
                    'post_status' => 'publish',
                    'posts_per_page' => 4,
                     'orderby' => 'ID',
                     'order' => 'DESC',
                    'tax_query' => array(
                        'relation' => 'AND',
                        array(
                            'taxonomy' => 'awards_categories',
                            'field' => 'slug',
                            'terms' => $award_solution
                        ),
                        array(
                            'taxonomy' => 'year',
                            'field' => 'slug',
                            'terms' => $yearvalue
                        ),
                    )
                );

wp select 쿼리를 사용하여 이를 가져오는 방법

<?php 
    $term = get_term_by('slug', $slug, 'category'); 
    $name = $term->name; 
    $id = $term->term_id;
?>

언급URL : https://stackoverflow.com/questions/12548353/wordpress-get-taxonomy-name-with-slug

반응형