2011-06-25 176 views
2

我想打印節點在Drupal 7 PHP塊字段值,但是當我使用的代碼:打印節點字段值

<?php 
if (arg(0) == 'node' && is_numeric(arg(1))) { 
    if ($node = node_load(arg(1))) { 
    if ($node->type == 'offer') { 
     $company_name = check_plain($node->field_company[0]['value']); 
    } 
    } 
    if (!empty($company_name)) { 
    print $company_name; 
    } 
} 
?> 

它什麼都不做 - 沒有打印。我確定我的變量是空的,但是爲什麼?我究竟做錯了什麼?

感謝所有幫助

+0

請注意,可以使用menu_get_object()代替那個可怕的arg檢查和node_load。 if($ node = menu_get_object())debug($ node);看看這種類型是否確實提供。 – chx

回答

1
$company_name = check_plain($node->field_company[0]['value']); 

這是SOOO D6。 :)在D7,默認情況下它會是:

$company_name = check_plain($node->field_company[$node->language][0]['value']); 

一般來說,剛的print_r /的var_dump(或KPR/DPR如果您已經安裝devel的)$節點對象那裏看看哪些領域你有內部以及如何訪問他們。

+3

謝謝。還有'$ company_name = field_get_items('node',$ node,'field_company');打印$ company_name [0] ['value'];'工作,但你的想法更有效率。謝謝。 – Gawi

+1

我修正了片段:將''und''改爲'$ node-> language'。另外,即使你堅持使用'沒有語言',你也希望'LANGUAGE_NONE'不是它的值。 – chx

+0

啊,是的,很好。感謝chx! –