【问题标题】:Drupal 6 views. How to make the views title the node title of the node id argument?Drupal 6 次浏览。如何使视图标题成为节点 ID 参数的节点标题?
【发布时间】:2010-02-25 08:10:33
【问题描述】:

我在 drupal 视图中使用节点 ID 作为参数。但是,我希望视图的标题显示节点的标题。

例如,我有一个节点 ID 为 36 且标题为“Hello World”的节点。视图页面 url 是“example.com/display-node/36”(36 是作为参数传递的节点 ID)。我希望页面标题显示为“页面:Hello World”。我该怎么做?

谢谢!

【问题讨论】:

    标签: drupal drupal-views arguments


    【解决方案1】:

    只需将 %1 放在视图标题中,这将为您提供当前节点的标题

    【讨论】:

    • 使用一个参数,这将使用第一个参数作为标题。您也可以根据需要向其中添加文本。
    【解决方案2】:

    我花了一段时间才弄清楚这个问题的答案;所以这里有更详细的解释:

    1. 您必须启用 PHP 过滤器模块 (admin/build/modules)。
    2. 在您的页面视图(admin/build/views/edit/[your view name])中,点击基本设置下的标题
    3. 在弹出的文本框中输入以下内容:
      <?php
      $view = views_get_current_view();
      // [0] is first arg, [1] is second etc.
      //My first argument is a Node:Nid argument to get the node id from the url.
      $node = node_load($view->args[0]);
      drupal_set_title('Page: '. $node->title);
      ?>
      
    4. 展开输入格式部分并选择PHP代码
    5. 点击更新,标题现在应该可以正常显示了!

    【讨论】:

      【解决方案3】:

      在 Header 视图中插入 php 代码:

      $node = menu_get_object();
      drupal_set_title('Page: '.$node->title);
      

      【讨论】:

        【解决方案4】:

        就像 Nikos Stylianou 所说,如果您使用“视图”模块,您可以使用 %1 来获取节点的标题。在你的情况下:

        “页面:%1”

        会输出

        “页面:Hello World”

        【讨论】:

          【解决方案5】:

          我无法将 args 传递到 Title 中,而是必须编辑 Header 并使用 Robert Fleming 的一些建议将相关参数解析为 h1。不幸的是,我无法设置页面标题。

          【讨论】:

          • 您可能需要使用模块 page_title。如果不是,您还没有使用它,这对于正确的 SEO 至关重要
          【解决方案6】:

          对于 Nikos Stylianou 和 Tivie 的回答,我还要补充一点,您应该使用上下文过滤器从视图的 url 中获取节点 ID。

          在高级下: 上下文过滤器 -> 添加 -> 内容:Nid -> 提供默认值 -> 来自 URL 的内容 ID。

          【讨论】:

            猜你喜欢
            • 2010-11-18
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-12-16
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多