サポート » 使い方全般 » カテゴリとページを連動させて投稿記事を管理するには?

  • taquito2007

    (@taquito2007)


    カテゴリの階層について質問させて下さい。
    今、どうやって階層化したカテゴリを使って、投稿記事を管理していくべきか悩んでおります。

    現在、友人のクリニックのHPの作成を手伝っております。
    このHPでは、ページ名がカテゴリと一致する投稿記事のみを各ページに表示させております。つまり、投稿記事画面でカテゴリを[理念」と選んだ場合、「理念」ページにその投稿記事が表示されます。

    ただ、こういった構造上カテゴリがかなり増えてしまったので、カテゴリを親子という階層にして管理しやすくしてみました。つまりドロップダウンメニューの階層と同様です。例えば

    =================
    ホーム
    クリニック案内
     理念
     交通アクセス
     採用情報
    診察案内
     内科
     小児科
     皮膚科
    =================

    といったものです。

    また、以下のコードを現在まで使用しておりましたが、カテゴリを階層化した結果、クリニック案内ページ(親ページ)には、理念・交通アクセス・採用情報ページに表示されている全ての投稿記事が表示されるようになってしまいました。

    <?php
    $args = array(
    ‘category_name’ => get_the_title(),
    ‘meta_key’ => ‘content_order’,
    ‘orderby’ => ‘meta_value’,
    ‘order’ => ‘ASC’
    );
    query_posts($args);

    ?>

    <?php if(have_posts()): while(have_posts()): the_post();
    $the_title = the_title( ”, ”, false );
    if ( $the_title != ” ) :
    ?>
    <div id =”title_content”><span><?php echo $the_title; ?></span></div>
    <?php
    endif;
    the_content(); ?>

    <?php endwhile; endif; ?>

    因みに、複数のカテゴリが選ばれているのが原因かなと思って、

    foreach($args as $key => $values)
    {
    echo $key .” : “. $value “
    /n”;
    }

    のコードで確認してみましたが、複数のカテゴリが表示されませんでした。

    クリニック案内は、その子ページへのリンクイメージを置きたく、子ページの投稿記事は非表示にしたいです。

    どなたか助言頂けると幸いです。

    よろしくお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • kz

    (@kz)

    category.php を以下の *ように* すれば OK◎

    $cat = get_category( get_query_var( 'cat' ), false );
    
    if ( 0 == $cat->category_parent ) :
      // 親カテゴリーの場合、子カテゴリーへのリンク(画像)を表示
      // リンク(画像)の表示はお好みでアレンジしてください
      $categories = get_categories( array(
        'child_of' => $cat->term_id,
        'hide_empty' => 0,
      ) );
      foreach ( $categories as $category ) :
        ?><a href="<?php echo get_category_link( $category->term_id );
        ?>" title="<?php esc_attr_e( $category->name );
        ?>"><img src="<?php bloginfo( 'stylesheet_directory' );
        ?>/images/<?php esc_attr_e( $category->slug );
        ?>.png" alt="Link to <?php esc_attr_e( $category->name );
        ?>" /></a><?php
      endforeach;
    else :
      // 子カテゴリーの場合、カテゴリーに属する投稿を表示
      $args = array(
      'category_name' => get_the_title(),
      'meta_key' => 'content_order',
      'orderby' => 'meta_value',
      'order' => 'ASC'
      );
      query_posts( $args );
      if ( have_posts() ) :
        while ( have_posts() ) :
          the_post();
          //(省略)
        endwhile;
      endif;
      wp_reset_query();  // query_posts() のシメを忘れずに!
    endif;

    トピック投稿者 taquito2007

    (@taquito2007)

    返信遅れて本当にすいません。
    コード早速試してみたいと思いますが、cateogry.phpというテンプレートが見当たりません。使用しているのはTwentyTenです。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「カテゴリとページを連動させて投稿記事を管理するには?」には新たに返信することはできません。