5

我正在尝试删除 Drupal 上页面节点的标题。我有这个页面:

在此处输入图像描述

我希望它看起来像这样:

在此处输入图像描述

如您所见,我希望删除标题,但适用于分类术语。如果我尝试使用 CSS 擦除它,我会擦除所有页面标题,所以我想使用这个模块,它允许管理员自动生成节点标题并隐藏它。

我去structure -> type content -> my type content,然后编辑它。我激活了模块,我想根据节点类别自动生成标题。我认为它应该看起来像这样,但它不起作用......

在此处输入图像描述

任何想法为什么?

编辑:对不起,我忘了说:是的,当我激活模块时,使用它,然后选择类别作为自动生成的标题,它就可以工作。但它并没有隐藏标题...

它也会引发这个错误:

在此处输入图像描述

4

9 回答 9

7

使用排除节点标题模块。

https://drupal.org/project/exclude_node_title

此模块的设置:

在此处输入图像描述

Click on Module->Exclude node title->configure
Home » Administration » Configuration » Content authoring
Select All nodes from Basic Page
Check Full Content for hide title from all cms page except home page
Check Teaser for hide title from home page. 
于 2014-05-08T06:19:06.887 回答
3

如果要删除标题,则应考虑覆盖页面和节点模板。

page.tpl.phpnode.tpl.php

您需要做的就是在这两个上单击“查看源代码”并将它们复制到您的主题文件夹中。从那里您可以根据需要修改两者。

据我所知,您需要$title从 node.tpl.php 中删除打印。

于 2012-12-04T17:10:21.693 回答
2

通过使用 Context 模块,您可以将类添加到正文中,以便您可以仅针对 CSS 中的分类页面。

使用 Context 模块设置 body 类

于 2012-12-07T03:04:11.627 回答
2

对不起,这就像在“管理演示文稿”上隐藏标题标签一样简单......

你的回答很好,但它们并不是我所需要的......谢谢!

于 2012-12-07T09:29:12.677 回答
2

之前有类似的问题,据我记得,我只是if在代码中添加了一些语句:

<?php if (blah-blah-blah): ?>
   <h2> <?php echo $title; ?> </h2>
<?php endif; ?>

希望,它会给你一个线索。

其他一些想法:您不仅可以创建一个 if 语句或重写它,还可以page.tpl.php创建一些特定page-node-type.tpl.php文件并仅覆盖其$title,或者您也可以尝试通过 Views/Panels 模块自定义页面的输出。

另外,您能否更清楚一点,您要删除什么标题?页面标题或节点标题?并且只有在您查看与某些分类术语相关的节点时才应该删除它(换句话说,当您在/taxonomy/term/n页面上时),对吗?

于 2012-12-05T10:49:42.183 回答
1

使用排除节点标题模块。

https://drupal.org/project/exclude_node_title

于 2014-02-20T07:18:44.570 回答
0

这就是我的做法,Switch 声明

// 获取节点名称

$node_name = node_type_get_name($node);

// 然后只需通过用空字符串覆盖 // $title 对象来添加您希望排除的内容类型

      switch ($node_name) {
           case 'Home page':
                $title = '' ;
                 break;
           case 'Event':
                $title = '';
                 break;
           case 'Offer':
                $title = '';
               break;
             }
于 2016-08-18T14:49:51.423 回答
0

针对特定节点的另一个不错的解决方案是使用标准的 $title_prefix/suffix vars,每个主题都应该实现它。在页面预处理中使用标准类元素不可见..

喜欢:

/**
 * Implements hook_preprocess_page().
 */
function YOUR_THEME_preprocess_page(&$variables) {

  if (isset($variables['node']) && $variables['node']->nid == 1) {
    $variables['title_prefix'] = array('#markup' => '<div class="element-invisible">');
    $variables['title_suffix'] = array('#markup' => '</div>');
  }
}
于 2015-08-03T15:12:48.153 回答
0

每个页面都应该包含一个标题。

您应该始终在任何网页中维护结构化的标题层次结构。你永远不应该有一个空白标题,甚至用 display:none; 隐藏它。隐藏访问者无法查看但搜索引擎可以查看的任何内容违反了 Google 的准则,因为您的意图是仅通过包含这些内容来操纵搜索引擎结果。重新设计 H1 以使其适合您的设计是最佳选择。

如果您仍然需要隐藏它,那么更好的选择是为该节点、内容类型或页面创建一个模板,而根本不打印标题。

或者,如果您想使用 CSS,请使用position:absolute,这样标题就不会使用它在页面中的任何空间和text-indent:-9999px; 因此文本被移出屏幕,不再可见,但至少可以被屏幕阅读器和搜索引擎阅读。

于 2015-08-12T10:57:12.253 回答