【问题标题】:How to load different banner picture on the same header.php?如何在同一个 header.php 上加载不同的横幅图片?
【发布时间】:2017-11-10 12:16:23
【问题描述】:

我正在创建一个 WP 主题。结构和设计非常复杂,所以我需要找到一种模式来编程一切。

我有不同类型的页面,它们按部分分组。网站中的所有页面都有相同的导航,但一个部分的所有页面都有特定的横幅。换句话说,我要么创建了 5 个不同的 header.php 文件(其中包含相同的导航栏和背面的不同横幅),要么创建一个 header.php 并根据部分加载特定的横幅。

我认为这是可能的,但找不到更多信息。 有什么想法吗?

谢谢

编辑

page.php:

if(is_page(14)) {
$class_name='headerNew';
get_header();
}

style.css:

.headerNew{
 background-image: url('img/explorebg.png')
  }

 .headerSupport{
    background-image: url('img/supportbg.png');
  }

header.php:

  <div class="<?php echo($class_name);?>">

看起来没问题,但没有任何显示。

【问题讨论】:

  • IMO 你应该只有一个 header.php 并在那里执行主要逻辑,这将是更干净的方式。因为,如果您想在未来中更改某些内容(或进行许多更改),使用该方法您可以只进行一次更改而不是 5 次。这样可以节省您的时间
  • 另外,最好将您的代码示例放在这里更具体。如果这些特定的横幅非常复杂(或结构非常不同),那么也许换一种方式会更好。但是,不看代码很难理解你的情况

标签: jquery html css header banner


【解决方案1】:

@最大水 由于我还没有开始工作,所以没有太多代码可以展示。我有一张简单的图片,展示了主要思想。 我们有 4 页和 2 个部分。白色区域是导航栏。它始终保持不变。 @ 页面有蓝色横幅,2 个页面有红色横幅。这只是一张图片。所以在 header.php 中,我肯定会有导航栏和横幅图片。问题是,如何根据页面改变图片?

See the picture for more info

【讨论】:

  • 你只做前端部分?例如,如果您可以更改 php 代码(后端部分),则可以使其与当前页面的变量一起使用。如果您的项目是在 php 上,最好的方法是只创建一个页面并编写条件(如果 url 名称或页面名称为 x 则使用横幅 x,如果 y 则使用横幅y 等)
  • 是的 :) 或者不使用 url,只需在包含 header.php 的页面顶部放置一个变量。该变量将在页面x 到页面y 之间变化(在x.php 中该变量为1,在y.php 中为2)。然后在header.php:if (variable==1){..use banner x..}else{..use banner y..}.
  • 问题是在我的例子中,我将图片定义为 div 容器的背景。这意味着图片应该在 style.css 中更改为 background-image: url('img');。有没有办法让 if 条件在那里并检查 css 文件中的页面?
  • 在 css 中,您可以为每个横幅创建一个类。 .banner-abanner-b(如果它们有共同点,例如,再创建一个类 .banner-common。您可以在其中放置共同特征)。在每个班级中,您都可以根据需要设置background-image。然后,您应该确定要使用的页面。这与我在上一条评论中描述的相同:if (var==1) {$class_name='banner-a';}else{$class_name='banner-b';}。然后,例如,在该 div 中设置 &lt;div class="&lt;?php echo($class_name);?&gt;"&gt;&lt;/div&gt;。 PHP 将通过变量var 知道你使用哪个页面。
  • 另见:link 这就是我要说的 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多