2012-09-22 29 views
5

¿Cómo puedo obtener una identificación o nombre de taxonomía solo con la babosa de taxonomía?Wordpress obtener el nombre de la taxonomía con babosas

Supongo que estoy buscando el equivalente de get_term_by() pero para las taxonomías.

Editar: debo especificar que estoy tratando de obtener la identificación fiscal de un atributo de producto WooCommerce.

Gracias

Respuesta

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

esto no responde a la pregunta. Solo encontrará el nombre de un término, no una taxonomía. – David

2

Como la respuesta aceptada no responde a la pregunta, que proporcionan una respuesta aquí a pesar de que la cuestión es muy antigua.

El tercer argumento (obligatorio) para get_term_by() es el nombre de la propia taxonomía, por lo que esta función no se puede utilizar.

get_taxonomies() no se puede utilizar porque entonces tendría que coincidir con toda la matriz de reescritura, a la que probablemente no tenga acceso.

Así que la única manera que encontré fue utilizar la matriz privada $wp_taxonomies:

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

Realmente espero Wordpress proporcionará una manera de hacer esto sin tener acceso a sus estructuras de datos internas.

7

WordPress proporciona una función para obtener la información de taxonomía de su slug.

$taxonomy_details = get_taxonomy($slug); 

Esto devolverá los datos de la taxonomía como un objeto, que incluye las diversas etiquetas para la taxonomía. Por ejemplo, aquí está el objeto devuelto cuando se solicita la taxonomía de categoría estándar, p. 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 
) 

Fuente: https://codex.wordpress.org/Function_Reference/get_taxonomy

+0

La babosa no es lo mismo que el nombre de la taxonomía. Su ejemplo solo funciona porque resultan ser iguales en este caso particular. get_taxonomy toma un nombre de taxonomía, no una babosa. – Hjalmar

+0

@Hjalmar Creo que el cartel original se refería a la taxonomía-> nombre como la etiqueta slug, y taxonomy-> como el nombre. Estoy enfrentando el mismo problema que él con los atributos de WC. – David

0
$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 
         ), 
        ) 
       ); 

cómo buscamos a esto con wp consulta de selección

Cuestiones relacionadas