使用多个elseif语句来显示不同类别的不同内容

时间:2014-01-05 17:08:02

标签: php wordpress if-statement categories

我试着用这个:

    <?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和类(在示例中显示称为“媒体”的类别的页面)时,上面的代码无法正常工作,并且ids和班级错了。在“媒体”类别页面上的示例中,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语句在第3类之后停止工作?

1 个答案:

答案 0 :(得分:0)

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

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

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