【问题标题】:Drupal: Print field without markupDrupal:没有标记的打印字段
【发布时间】:2011-04-22 20:43:35
【问题描述】:

有没有办法在不获取所有标记的情况下打印字段内容?我是 Drupal 的新手,但我知道 field.tpl.php,但是,我只是想知道是否有更快的方法来获取节点中的内容——custom.tpl.php。它可以与 Wordpress 的 <?php echo get_field('field_name'); ?>

进行比较

【问题讨论】:

  • 所以你想剥离html标签,是这样吗?
  • 是的,如果除了制作多个 field.tpl.php 文件之外还有其他方法可以做到这一点。谢谢!!!

标签: php drupal


【解决方案1】:

嗯,除了使用field.tpl.php,我还能想到2个解决方案:

第一:

使用 php sn-p 去除 template.php 中的 html 标签。

在你的 template.php 中

function mytheme_strip_html_tags($n_field) {

   return preg_replace("/<.*?>/", "", $n_field);

}

然后调用函数mytheme_strip_html_tags($field_name)

但是,如果您使用多个主题,则需要将此 sn-p 复制到每个主题中。

编辑:您可以制作一个模块并将该 sn-p 放入其中。这样它就适用于每个主题。

秒:

下载令牌模块。标记是对您的字段的引用。 Tokens 模块有一个输出模式,可以为你剥离 html。 [field_name-raw]

您需要按照说明添加令牌,但这并不难。

【讨论】:

    【解决方案2】:

    你可以访问 node.tpl.php 中的 $node 变量,所以:

    <?php print $node->field_monkey_height; ?>
    

    应该可以...请注意,许多字段会将其数据隐藏在数组中(对于多个值字段等),因此您可能需要做一些事情:

    <?php drupal_set_message(print_r($node->field_monkey_height), 1); ?>
    

    ...找出您需要的数据的确切路径。

    【讨论】:

      【解决方案3】:

      您可以像这样使用 PHP 的 strip_tags()

      <?php print strip_tags($node->field_name[LANGUAGE_NONE][0]['value']); ?>
      

      【讨论】:

        猜你喜欢
        • 2014-08-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多