フォーラム

[解決済み] カテゴリーのページをカスタマイズすると最新投稿が表示されない (5 件の投稿)

  1. momojb
    メンバー
    6 ヶ月前の投稿 #

    カテゴリーのページにおいて、テーマをカスタマイズしてカテゴリー一覧を表示させています。

    デフォルトのテーマのcategory.phpだと
    カテゴリーのページで投稿記事がすべて表示されるのに
    ページをカスタマイズすると最新投稿が表示されません。

    またカスタマイズしたページだと最新投稿のタイトルを「news5」とするとページタイトルが
    <title>blog - news5</title>
    となっています。

    色々原因を調べているのですがわかりません。。。

    ご教授いただけたら幸いです。
    よろしくお願いいたします。

  2. mizube
    メンバー
    6 ヶ月前の投稿 #

    カスタマイズのしかたに原因がありそうです。
    カスタマイズ箇所のコードを提示していただけますか? 何か分かるかもしれません。

  3. momojb
    メンバー
    6 ヶ月前の投稿 #

    mizubeさんありがとうございます!
    部分的な問題ではないと思うのでcatetory.phpのソースを提示します。
    元テーマはwpVicunaExcです。

    <?php	get_header(); ?>
    <title>
    <?php vicuna_title(the_title('','',false)); ?>
    </title>
    </head>
    <?php	if (have_posts()) : the_post(); ?>
    <body>
    <div id="wallpaper">
    <?php vicuna_analysis_code() ?>
    <!--header-->
      <div id="header">
        <h1 class="logo"><a href="<?php bloginfo('home'); ?>" title="<?php printf(__('Return to %s index', 'vicuna'), get_bloginfo('name')); ?>"><?php bloginfo('name'); ?></a></h1>
      </div>
     <!--/header-->
     <!--globalNav-->
      <ul id="globalNav">
     <li></li>
      </ul>
      <!--/globalNav-->
      <!--main-->
      <div id="main">
      <div id="mai_in">
        <div id="pankuzu"><a href="<?php bloginfo('home'); ?>">TOP</a><?php
    	if ($categories = get_vicuna_upper_category($cat, ' | ') ) {
    		echo ' > '. $categories;
    	}
    ?> &nbsp;>&nbsp; <?php single_cat_title(); ?></div>
        <h1><img src="http://fm-alibaba/ali_net/wp-content/themes/wp.vicuna.exc/style-vega/images/ttl_tsutatsu.gif" width="800" height="30" alt="社内通達" /></h1>
        <!--category List-->
        <div class="content">
        <?php
    	if (have_posts()) :
    		while (have_posts()) : the_post();
    ?>
    	<dl class="infoList2">
      <dt><?php the_time('Y年m月d日') ?></dt>
      <dd><?php the_title(); ?><?php the_content(__('Continue reading', 'vicuna')); ?></dd>
      </dl>
      <?php
    		endwhile;
    	endif;
    ?>
        </div>
        <!--/category List-->
      </div>
      </div>
      <!--/main-->
    <?php	get_footer(); ?>
    <?php endif; ?>

    何かソースがかけているのでしょうか??

  4. momojb
    メンバー
    6 ヶ月前の投稿 #

    mizubeさんご返信ありがとうございました。
    その後色々検証してみたところ

    </head>
    <?php	if (have_posts()) : the_post(); ?>
    <body>
    <?php	get_footer(); ?>
    <?php endif; ?>

    上記が入っているのが原因でうまく表示できていないのが分かりました。
    ありがとうございました。
    もとのページはpage.phpをベースにしていたのですが、
    category.php
    とループのかけ方が違うのですね。

  5. mizube
    メンバー
    6 ヶ月前の投稿 #

    ご自身で解決なさったようで何よりです。

    もとのページはpage.phpをベースにしていたのですが、
    category.php
    とループのかけ方が違うのですね。

    body 要素を丸ごと if ( have_posts() ) {} で囲んで、冒頭で the_post(); としてしまうやり方は、vicuna テーマ独自の書き方だと思います。 page.php のように 1 件のみの表示であれば一見問題ありませんが、 momojb さんがはまってしまったように同じ方法で他のテンプレートをうまく修正できなかったり、 WordPress のテーマの記述方法としては、あまり良くない書き方なのかもしれません (ただし、 vicuna そのものを考えれば素晴らしいテーマだと思います)。

    また、 vicuna には独自のテンプレート関数が盛り沢山なので、今回のように問題に行き当たった場合は、もしかすると本家配布元のフォーラムに書き込んだ方が解決する可能性は高いかもしれません。 vicuna テーマに詳しい方が多いはずですので。

返信

ログイン しなければ投稿できません。

About this Topic