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

时间:2018-02-17 03:48:15

标签: drupal-7 drupal-theming

我有一个Drupal 7网站,其中包含基于Zen的自定义子主题。我有一个自定义徽标,我放在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

2 个答案:

答案 0 :(得分:0)

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

<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

答案 1 :(得分:0)

你解决了这个问题吗?..好吧,如果你没有解决这个问题,请在你的page.tpl.php中试试这个,粘贴一下:

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

祝你好运!