If、Else和ElseIf语句的问题

时间:2018-12-13 作者:lushiris02

对于我的网站,我需要有不同的标题颜色,这取决于它所在的页面。以下是我的网站正在运行的代码:

<?php if ( is_single() && is_post_type(\'product\') || is_page(576) || is_single() && is_post_type(\'post\')) : ?>
      <div class="header-inner">
      <style type="text/css">.header-inner { background-color:#861919!important; }</style>
<?php else : ?>
      <div class="header-inner" style="background-color:rgba(0,0,0,0.30);">
<?php endif; ?>
我试图修改以上内容,以排除某些产品帖子,因为它们的设计。我会注意到,大多数产品都使用post模板。php,我需要有一个透明的标题,这些标题使用的是product specialty。php。我的开发人员安装了插件WP Post,以便能够选择不同的模板。下面是我对修改后的代码的尝试,但结果是没有加载任何内容:

<?php if ( is_single(893,892,843,895,894,896) ) : ?>
       <div class="header-inner" style="background-color:rgba(0,0,0,0.30);">
<?php else( is_single() && is_post_type(\'product\') || is_page(576) || is_single() && is_post_type(\'post\')) : ?>
      <div class="header-inner">
      <style type="text/css">.header-inner { background-color:#861919!important; }</style>
<?php elseif : ?>
      <div class="header-inner" style="background-color:rgba(0,0,0,0.30);">
<?php endif; ?>
知道我做错了什么吗?

2 个回复
最合适的回答,由SO网友:RiddleMeThis 整理而成

这里有一个替代解决方案。我认为这比添加所有这些if语句和页面id更干净。您可以使用CSS和WP添加的body类来实现这一点。

例如,转到其中一个页面,查看body标记上的类。您应该看到类似于页面id-####的内容。然后只需在样式表或CSS定制器中添加一条规则。

像这样的。。。

body.page-id-123 .header-inner,
body.page-id-124 .header-inner,
body.page-id-125 .header-inner, {
    background-color:#861919!important;
}
下面是如何定位其他页面的方法。

所有单一产品页面-正文。单一产品。标题内部{}

  • 特定的单个帖子正文。postid-####。标题内部{}
  • 博客页面-正文。博客标题内部{}
  • 所有单个博客页面-正文。单立柱。标题内部{}
  • Create your own body class

    如果需要,可以使用body\\u类过滤器创建自己的body类,下面是一个如何使用它的基本示例。当然,您可以通过添加条件或检查模板来做更多的事情。

    function my_custom_body_class($classes) {
        $classes[] = \'foo\';
        return $classes;
    }
    
    add_filter(\'body_class\', \'my_custom_body_class\');
    

  • SO网友:Liam Stewart

    您只是传递多个值,而不是一个列表。切换到阵列。

    更改此行:

    <?php if ( is_single(893,892,843,895,894,896) ) : ?>
    
    收件人:

    <?php if ( is_single(array(893,892,843,895,894,896)) ) : ?>
    
    更多信息:https://developer.wordpress.org/reference/functions/is_single/

    相关推荐

    Cannot override hooks.php

    我为网络黑猩猩的“反应主题”构建了一个儿童主题。我想换一个钩子。所以我想我需要钩子。我的孩子主题中的php文件。所以我从父母那里复制了它。我制定了相同的层次结构(我想这是正确的方法)。wp-content/[my_child_theme]/core/includes/hooks.php 将文件复制到主题根目录没有帮助。我还试图重新创建这个关键钩子。我把代码放在子函数中。php文件,但它也不起作用,因为挂钩发生在主题内容之后(只是我的asumtion)。所以问题很简单:如何覆盖父主题的挂钩。php