0

私はこのコードを使用して、ワードプレスでカスタムのsingle.phpページを(カテゴリ別に)表示しますが、正常に機能します。

 get_header(); ?>

        <div id="container">
            <div id="content" role="main">

            <?php
              $post = $wp_query->post;

              if (in_category('4')) {
                  include(TEMPLATEPATH.'/loop-single-recept.php');
              } elseif (in_category('7')) {
                  include(TEMPLATEPATH.'/loop-single.php');
              } else {
                  include(TEMPLATEPATH.'/loop-single.php');
              }
                ?>


            </div><!-- #content -->
        </div><!-- #container -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

しかし、私はまた、各single.phpページにカスタムサイドバーを表示したいと思います。

4

2 に答える 2

2

複数のサイドバー ファイルを作成し、(通常は空の) 引数を使用してそれらを呼び出すことができます。<?php get_sidebar() ?>

たとえば、代替サイドバーを作成して sidebar-alternative.php と呼び、次のように呼び出します。<?php get_sidebar('alternative'); ?>

したがって、コードは次のようになります。

        <?php

          if (in_category('4')) {
              get_sidebar();
          } elseif (in_category('7')) {
              get_sidebar('alternative');
          } else {
              get_sidebar('alternative');
          }

         ?>

ちなみに、私はそれを問題にしているわけではありませんが、回答の一部を受け入れることを検討する必要があります。

于 2012-08-12T18:16:05.623 に答える
0

ときどき in_category() がうまくいかないようです。私は $wp_query 変数からカテゴリ名を取得して、自分のファイルをインクルードするのが好きです:

if($wp_query->query['category_name'] == 'your-category-name-1') {

    include_once('sidebar-one.php');

} else if($wp_query->query['category_name'] == 'your-category-name-2') {

    include_once('sidebar-two.php');

} else {

    include_once('sidebar-three.php');

}
于 2016-09-02T16:32:38.847 に答える