어휘에서 모든 용어 나열


25

서비스라는 분류법이 있으며 모든 용어를 나열하고 싶습니다. 나는 함께 택시를로드 할 수 있습니다

 $vocabulary = taxonomy_vocabulary_machine_name_load('Services')

그러나 모든 용어를 알아낼 수는 없습니다.


자세한 코드를 작성할 수 있습니까?
monymirza

답변:


43

몇 가지 방법이 있지만 선호합니다 entity_load().

$vocabulary = taxonomy_vocabulary_machine_name_load('Services');
$terms = entity_load('taxonomy_term', FALSE, array('vid' => $vocabulary->vid));

다음을 사용할 수도 있습니다.


사용의 장점을 설명해 주 entity_load시겠습니까?
niksmac

3
@NikhilM taxonomy_term_load_multiple()개인적으로 선호하는 것 보다 타이핑 하는 문자가 적습니다 . 를 사용하면 taxonomy_get_tree()원래 계층 구조에서 용어가 구체적으로 필요하지 않은 경우 (OP에서 지정하지 않은) 쿼리에 불필요한 수준의 복잡성이 발생합니다.
Clive

나는 그것을 좋아한다. 그러나 아래의 대답은 조금 더 읽기 쉽다고 생각한다.
LeBlaireau

@welovedesign 정말요? 나는 6 개보다 2 줄을 선호하지만 그것은 단지 개인적인 취향이다 :) 80 자 미만이라면 여전히 Drupal의 코딩 표준을 준수하고있다
Clive

Drupal의 코딩 표준 준수에 대한 나의 +1
niksmac

18

이 코드를 사용하고 싶습니다.

$name = 'YOUR_VOCAB_NAME';
$myvoc = taxonomy_vocabulary_machine_name_load($name);
$tree = taxonomy_get_tree($myvoc->vid);
foreach ($tree as $term) {
 echo $term->tid;
}

taxonomy_vocabulary_machine_name_load

taxonomy_get_tree


다국어 사이트가있는 경우 원하는대로 작동하지 않습니다. 언어에 관계없이 모든 용어를 원한다면 적절한 결과를 얻지 못합니다. "taxonomy_get_tree"는 언어를 기준으로 결과를 구문 분석합니다. 위의 답변이 저에게 효과적입니다.
Vaibhav Jain
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.