J'ai ajouté des champs au type de contenu "Article". Je veux les sortir dans une page - front.tpl.php. Comment puis-je obtenir la valeur de l'étiquette de champ?
Lorsque j'utilise le code suivant dans la page - front.tpl.php, il ne montre pas le nom de l'étiquette de champ. Pourquoi? Quel code dois-je utiliser pour imprimer l'étiquette du champ?
$node = node_load(1);
print_r($node);
La sortie est similaire à celle des éléments suivants:
[Field_sq] => Array ([.____] [ZH-Hans] => Array ([.____] [0] => Array ([0]] => 250 .____]])) ) )
Dans node-article.tpl.php Ajouter ce code au début
// loop through node properties
foreach ($node as $k => $v) {
// ensure this property is a field
if (substr($k,0,6) == 'field_') {
// use the CCK function to get the field data for this field
$fieldData = content_fields($k, $node->type);
// add the label to the array
$fieldLabels[$k] = $fieldData['widget']['label'];
}
}
Que vous pouvez imprimer des étiquettes comme ceci:
<?php if ($node->field_YourField[0]['view']){ ?>
<?php print $fieldLabels['field_YourField']; ?> // prints label (add div/span wrapper if you need it)
<?php print $node->field_YourField[0]['view'] ?> // prints field value (add div/span wrpaer if you need it)
<?php } ?>
Ceci est testé dans Drupal 6. J'espère que cela aide.
Vous pouvez utiliser comme suit pour obtenir l'étiquette de champ
$entity_type = 'node';
$bundle_name = 'article';
$field_name = 'field_some_field';
$info = field_info_instance($entity_type, $field_name, $bundle_name);
$label = $info['label'];