Extract URL from link field in Drupal?

2019-08-12 08:18发布

问题:

I have a link field that is composed from a URL and the title, I need to print out only the URL of the link field without the title in my node content type tpl file, is that possible ?

Thanks!

回答1:

It should be as easy as:

$url = $node->field_name_of_field[$node->language][0]['url'];

I'll break that down a bit:

Fields are members of the node object and are always prefixed with field_ so a field called my_field can be found with $node->field_my_field.

Each field members of the node object is itself an array of all different language versions for the field, keyed by the language key. To access the field value for the language that the node is denoted as you would use: $node->field_my_field[$node->language] or perhaps $node->field_my_field[LANGUAGE_NONE] (which is the default).

Further to that, each language array can potentially have multiple field values in it, if the cardinality of the field is greater than 1. If you have a field (e.g. images) with multiple values allowed you would run through each like this:

foreach ($node->field_my_field[$node->language] as $delta => $item) {

}

Within each item of the language array are the actual field values. Fields may have multiple columns (for example the link module has url, title and attributes). To continue with the previous example you would find the url and title like this:

$url = $node->field_name_of_field[$node->language][0]['url'];
$title = $node->field_name_of_field[$node->language][0]['title'];

Hope that helps!