Obtenga el ID de vocabulario por término o nodo


9

Voy a verificar si un término pertenece a un vocabulario designado.

¿Qué función se usa para obtener vocabulario por término o nodo?

Respuestas:


15

En Drupal 6, si conoce el ID de término de taxonomía, puede obtener el ID de vocabulario utilizando el siguiente código:

$term = taxonomy_get_term($tid);
$vid = $term->vid;

Si tiene una ID de nodo, puede usar el siguiente código para obtener la ID de vocabulario de todos los términos de taxonomía asociados con el nodo usando el siguiente código:

$node = node_load($nid);
$vids = array();

if (!empty($node->taxonomy)) {
  foreach ($node->taxonomy as $tid => $term) {
    $vids[] = $term->vid;
  }
}

En Drupal 7, el código sería el siguiente:

$term = taxonomy_term_load($tid);
$vid = $term->vid;

En Drupal 7, la propiedad del nodo $node->taxonomyya no existe. En cambio, hay $node->field_<vocabulary_name>una matriz con dos estructuras diferentes.

  • etiquetas

    captura de pantalla

  • otros términos de taxonomía

    captura de pantalla

Usando field_get_items () , obtendría los términos de taxonomía en el idioma en que se mostrarían, o en el idioma cuyo código se pasa como argumento a la función.

$items = field_get_items('node', $node, $field_name);

$nodecontiene el objeto de nodo y $field_nameel nombre del campo de término de taxonomía.

$itemscontiene una matriz simplificada, en comparación con la matriz contenida en $node->field_<vocabulary_name>.

captura de pantalla


1

Para Drupal 7, el código anterior debería ser así:

 $tid = 18;
 $vid = db_query('SELECT vid FROM {taxonomy_term_data} WHERE tid = :tid', 
                  array(':tid' => $tid)
                )->fetchField();
 echo $vid;

Vea más ejemplos en db_query () drupal 7 function.


0

Resuelto por el siguiente código:

$tid = 18;    
$result = db_query("SELECT vid FROM {term_data} WHERE tid = %d", $tid);
$vid = db_result($result);
echo $vid;
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.