page.tpl.php中的Drupal 7自定义徽标未显示在所有页面上

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了page.tpl.php中的Drupal 7自定义徽标未显示在所有页面上相关的知识,希望对你有一定的参考价值。

我有一个基于Zen的自定义子主题的Drupal 7站点。我有一个自定义徽标,我放在page.tpl.php标题div。我遇到的问题是徽标只出现在第一个“主要”页面上,而不是“子页面”。请原谅我的术语,试图解释这一点。我所说的子页面是指在链条下游或在第一个正斜杠后发生的任何页面。以下是“主要”页面和“子页面”的含义示例。所有这些“主要”页面都直接位于网站名称后面的第一个斜杠之后。徽标不会显示在这些主页(子页面)之后出现的任何页面上。我的所有页面都是使用Pages模块制作的,但是,子页面有一个使用%term的路径,例如/ support /%term或products /%term。

我错过了什么以及如何在page.tpl.php中制作我的徽标才能显示在我网站的所有页面上?我应该使用/%term为页面创建一个新的page.tpl.php文件吗?

主页 - 徽标显示:

mysite.com/about 
mysite.com/products 
mysite.com/support    
mysite.com/contact

子页面 - 徽标未显示:

mysite.com/products/product1
mysite.com/support/product1-support
答案

如果我理解正确,那么快速解决方法是确保徽标的路径以“/”开头,如下所示:

<img src="/sites/all/themes/customZen/images/logo.png" />

但是如果主题的路径发生变化,一切都会破裂,所以不要这样做。

如果使用CSS作为背景放置徽标,请使用相对URL(它相对于.css文件的路径)

或者您可以在page.tpl.php中执行以下操作:

<img src="<?php url($directory . '/images/logo.png'); ?>" />

$ directory是模板所在的目录,例如网站/所有/主题/ customZen。

可以在此处找到page.tpl.php变量的完整列表:https://api.drupal.org/api/drupal/modules%21system%21page.tpl.php/7.x

另一答案

你解决了这个问题吗?嗯,如果你没有解决,请在你的page.tpl.php中尝试使用这个粘贴:

<img alt="" src="<?php echo drupal_get_path('theme', 'customZen');?>/images/logo.png">

以上是关于page.tpl.php中的Drupal 7自定义徽标未显示在所有页面上的主要内容,如果未能解决你的问题,请参考以下文章

如何替换从 Drupal 中的模块加载的 page.tpl.php?

Drupal 7自定义菜单渲染

带有自定义模板暴露过滤器的 Drupal 7 视图不显示

PHP Drupal page.tpl.php导航块

PHP Drupal 5.x page.tpl.php模板

如何使用 Drupal 视图模块实现 node-VIEWNAME.tpl.php?