我正在尝试删除Drupal上的页面节点的标题。我有这个页面:
我希望它看起来像这样:
正如您所看到的,我希望删除标题,但仅用于分类术语。如果我尝试使用CSS擦除它,我会删除页面标题,所以我想使用this module,它允许管理员自动生成节点标题并隐藏它。
我转到结构 - >类型内容 - >我的类型内容,并进行编辑。我激活模块,我想根据节点类别自动生成标题。我认为它应该是这样的,但它不起作用......
任何想法为什么?
编辑:抱歉,我忘了说:是的,当我激活模块时,使用它,并选择类别作为自动生成的标题,它可以工作。但它并没有隐藏标题......
它也引发了这个错误:
答案 0 :(得分: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.
答案 1 :(得分:3)
如果要删除标题,则应考虑覆盖页面和节点模板。
您只需点击两者上的“查看来源”,然后将其复制到主题文件夹即可。从那里你可以根据需要修改它们。
根据我的收集内容,您需要从node.tpl.php中删除打印$title
。
答案 2 :(得分:2)
之前有类似的问题,据我记得,我刚刚在代码中添加了一些if
语句:
<?php if (blah-blah-blah): ?>
<h2> <?php echo $title; ?> </h2>
<?php endif; ?>
希望,它会给你一个线索。
其他一些想法:您可以创建if语句或不仅在page.tpl.php
中重写它,而是创建一些特定的page-node-type.tpl.php
文件并仅覆盖其$title
,或者您可以尝试自定义页面的输出也通过视图/面板模块。
另外,你能不能说清楚,你要删除什么标题?页面标题或节点标题?只有当您查看与某个分类术语相关联的节点时(换句话说,当您在/taxonomy/term/n
页面上时),它才应被删除,我是对的吗?
答案 3 :(得分:2)
通过使用Context模块,您可以向主体添加类,这样您就可以只在CSS中定位分类页面。
答案 4 :(得分:2)
对不起,伙伴们,就像在“管理演示文稿”中隐藏标题标签一样简单...
你的反应很好,但它们并不是我所需要的......谢谢!
答案 5 :(得分:1)
使用排除节点标题模块。
答案 6 :(得分: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>');
}
}
答案 7 :(得分:0)
每个页面都应包含一个标题。
您应该始终在任何网页中维护标题的结构化层次结构。你永远不应该有一个空白的标题,甚至不能用display:none;隐藏它。隐藏任何访问者无法查看但被搜索引擎查看的内容违反了Google的指导原则,因为您的目的只是通过包含搜索引擎结果来操纵搜索引擎结果。重新设计H1以适应您的设计是最佳选择。
如果您仍然需要隐藏它,那么更好的选择是为该节点,内容类型或页面创建模板,而不是打印标题。
或者如果你想使用CSS,那么使用 position:absolute ,这样标题就不会使用它在页面中的任何空格而且 text-indent:-9999px; < / strong>所以文本被移出屏幕并且不再可见,但至少可以被屏幕阅读器和搜索引擎读取。
答案 8 :(得分: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;
}