【问题标题】:Using multiple elseif-statements to show different content in different categories使用多个 elseif 语句来显示不同类别的不同内容
【发布时间】:2014-01-05 17:08:02
【问题描述】:

我试过用这个:

    <?php if ( is_category(opiskelu) ) : ?>      

<div id="loop_meta_wrapper">
  <div class="container_16 clearfix">
    <div id="loop-meta-opiskelu" class="grid_16">
      <h1 class="loop-meta-title-opiskelu"><?php printf( __( 'Julkaisut kategoriassa "%s"', 'contango' ), '<span>' . ucwords( strtolower ( single_cat_title( '', false ) ) ) . '</span>' ); ?></h1>
      <div class="loop-meta-description-opiskelu"><?php echo category_description(); ?></div>
    </div> <!-- end #loop-meta -->
  </div> <!-- end .container_16 -->  </div>

<?php elseif ( is_category(lifestyle) ) : ?>      

<div id="loop_meta_wrapper">
  <div class="container_16 clearfix">
    <div id="loop-meta-lifestyle" class="grid_16">
      <h1 class="loop-meta-title-lifestyle"><?php printf( __( 'Julkaisut kategoriassa "%s"', 'contango' ), '<span>' . ucwords( strtolower ( single_cat_title( '', false ) ) ) . '</span>' ); ?></h1>
      <div class="loop-meta-description-lifestyle"><?php echo category_description(); ?></div>
    </div> <!-- end #loop-meta -->
  </div> <!-- end .container_16 -->  </div>

<?php elseif ( is_category(tietotekniikka-elektroniikka) ) : ?>      

<div id="loop_meta_wrapper">
  <div class="container_16 clearfix">
    <div id="loop-meta-tietotekniikka-elektroniikka" class="grid_16">
      <h1 class="loop-meta-title-tietotekniikka-elektroniikka"><?php printf( __( 'Julkaisut kategoriassa "%s"', 'contango' ), '<span>' . ucwords( strtolower ( single_cat_title( '', false ) ) ) . '</span>' ); ?></h1>
      <div class="loop-meta-description-tietotekniikka-elektroniikka"><?php echo category_description(); ?></div>
    </div> <!-- end #loop-meta -->
  </div> <!-- end .container_16 -->  </div>

<?php elseif ( is_category(media) ) : ?>      

<div id="loop_meta_wrapper">
  <div class="container_16 clearfix">
    <div id="loop-meta-media" class="grid_16">
      <h1 class="loop-meta-title-media"><?php printf( __( 'Julkaisut kategoriassa "%s"', 'contango' ), '<span>' . ucwords( strtolower ( single_cat_title( '', false ) ) ) . '</span>' ); ?></h1>
      <div class="loop-meta-description-media"><?php echo category_description(); ?></div>
    </div> <!-- end #loop-meta -->
  </div> <!-- end .container_16 -->  </div>

<?php elseif ( is_category(urheilu-liikunta) ) : ?>      

<div id="loop_meta_wrapper">
  <div class="container_16 clearfix">
    <div id="loop-meta-urheilu-liikunta" class="grid_16">
      <h1 class="loop-meta-title-urheilu-liikunta"><?php printf( __( 'Julkaisut kategoriassa "%s"', 'contango' ), '<span>' . ucwords( strtolower ( single_cat_title( '', false ) ) ) . '</span>' ); ?></h1>
      <div class="loop-meta-description-urheilu-liikunta"><?php echo category_description(); ?></div>
    </div> <!-- end #loop-meta -->
  </div> <!-- end .container_16 -->  </div>

<?php elseif ( is_category(hyvinvointi) ) : ?>      

<div id="loop_meta_wrapper">
  <div class="container_16 clearfix">
    <div id="loop-meta-hyvinvointi" class="grid_16">
      <h1 class="loop-meta-title-hyvinvointi"><?php printf( __( 'Julkaisut kategoriassa "%s"', 'contango' ), '<span>' . ucwords( strtolower ( single_cat_title( '', false ) ) ) . '</span>' ); ?></h1>
      <div class="loop-meta-description-hyvinvointi"><?php echo category_description(); ?></div>
    </div> <!-- end #loop-meta -->
  </div> <!-- end .container_16 -->  </div>

......等等(有25个不同的类别)。问题是,当我在名为“tietotekniikka-elektroniikka”的类别之后的类别页面上检查 id 和类时(例如显示名为“media”的类别的页面),上面的代码无法正常工作,并且 id 和类是错误的。在“媒体”类别页面的示例中,div 如下所示:

<div id="loop-meta-tietotekniikka-elektroniikka" class="grid_16">
      <h1 class="loop-meta-title-tietotekniikka-elektroniikka">Julkaisut kategoriassa "<span>Media</span>"</h1>
      <div class="loop-meta-description-tietotekniikka-elektroniikka"></div>
</div>

所以我想问是否有人知道这个问题的解决方案。有人能解释一下为什么那些 elseif 语句在第三类之后停止工作吗?

【问题讨论】:

  • 我猜这是因为您在传递给 is_category() 的文本周围缺少引号
  • 嗯。我为自己如此无知而感到难过。现在可以使用了!谢谢! :)

标签: php wordpress if-statement categories


【解决方案1】:

对于 25 个类别,我会使用 switch 运算符:
http://www.php.net/manual/en/control-structures.switch.php
这样代码会更好阅读。

如果你想使用if: 我会在php 标签中插入div 标签。

如果这两个不起作用 - 只需重新编码即可。这可能是一个你看不到的小错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    • 1970-01-01
    • 2022-08-21
    相关资源
    最近更新 更多