0

我有几种自定义内容类型,在一个特定的内容类型中,我需要提供两个字段,一个用于链接的 href,一个用于链接的文本,这样我可以在最少的用户参与的情况下构建和设置 HTML/ CSS。我也有这个内容类型的自定义 node.tpl。我的问题是,drupal 会在我创建的每个字段周围抛出 div,这些字段不在此内容类型(node-custom.tpl)的模板文件中,并且我无法将 href 用于在其周围包含 div 的链接<a href="<div id="something">google.co.uk</div>"></a>查看我的问题. 也许我做错了,所以欢迎任何其他想法。

请注意,我正在尝试以最少的用户参与 HTML/CSS 访问来创建此站点。我知道我可以在现场手动编码链接。

4

1 回答 1

1

最简单的方法是在你的 template.php 文件中使用预处理函数并手动构建链接:

function mytheme_preprocess_node(&$vars) {
  $node = $vars['node'];
  if ($node->type = 'my_type') {
    $uri = $node->field_name_of_link_field[LANGUAGE_NONE][0]['value'];
    $text = $node->field_name_of_display_text_field[LANGUAGE_NONE][0]['value']; 
    $vars['my_link'] = l($text, $uri); // Using Drupal's l() function to render a link
  }   
}

然后在您的节点模板文件中,您将可以访问可以在$my_link任何地方输出的变量,并将包含链接的正确 HTML。最后,转到您的内容类型的“管理显示”页面,并将不再需要输出的两个字段的显示设置为“隐藏”。

还有其他方法,所以如果这不好,请告诉我

编辑

补充一点,我认为最简单的方法实际上是安装Link 模块并使用提供的字段类型而不是您当前使用的其他两个字段。

于 2011-11-09T18:17:23.047 回答