サポート » 使い方全般 » 投稿のアーカイブページについて

  • 解決済 tdf765

    (@tdf765)


    CPT UIでカスタム投稿(作品集)を作成し、アーカイブページを作成しました。
    その際にHas ArchiveをTUREに設定し、archive-(slug名).phpを作成することでページを反映させることができました。
    一方でもともとある投稿(スタッフブログとして使用)についてアーカイブページを作成することができません。archive.phpを作成しましたが、header、sidebar、footer部分も反映されず真っ白なページが表示されてしまいます。archive.phpは下記の通りです。

    <?php get_header(); ?>
    
    <?php
    $args = array(
    	'post_type' => 'post', /* 投稿タイプ */
    	'paged' => $paged
    ); ?>
    
    <?php query_posts( $args ); ?>
    
      <div id="contents"><!--contents-->
    <?php get_sidebar(left_blog); ?>
        <div id="article" class="floatL bottom blog"><!--article-->
    <?php get_template_part('loop-blog'); ?>
        </div>
       </div>
      <?php get_footer(bottom); ?>

    カスタム投稿のように固定ページを使わずに投稿のアーカイブページを作成することはできないのでしょうか?
    初歩的な質問で申し訳ないのですが、原因が分かりません。
    よろしくお願いいたします。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • get_sidebar のパラメーターは文字列なので ‘left_blog’ と 記述するのが正しいと思います。get_footer も同様に ‘bottom’ なのでは。

    それから get_template_part(‘loop-blog’); の中に何か誤りがあるのかもしれません。

    他に確かめることとして、header.php と footer-bottom.php と loop-blog.php の内容は正しいですよね。

    トピック投稿者 tdf765

    (@tdf765)

    gblsmさん、ご返信とアドバイスありがとうございます。
    申し訳ございません。ご指摘いただいた点を修正し、header.php と footer-bottom.phpをチェックして実行しましたが、結果は変わりませんでした。

    get_template_part(‘loop-blog’); の中は下記の通りです。

    <?php
    $paged = get_query_var('paged'); //アーカイブページで投稿タイプを取得
    query_posts(
    	Array(
    		'post_type' => 'post',
    		'posts_per_page' => -1,
    		'paged' => $paged
    	)
    );
    ?>
    
    <?php if (have_posts()) : ?>
    	<?php while (have_posts()) : the_post();
    	/* ループ開始 */ ?>
    	<div class="post">
        		<h3 id="sec1"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h3>
        	<p class="date"><?php the_time("Y年m月j日") ?><br /><br /></p>
    
        	<?php the_excerpt(); ?>
            <p class="more-link"><a href="<?php the_permalink() ?>">続きを読む ≫</a></p>
        </div>
    	<?php endwhile; ?>
    <?php else : ?>
        <div class="post">
        	<h3>記事がありません</h3>
        	<p>表示する記事はありませんでした</p>
        </div>
    <?php endif; ?>

    //○○○.co.jp/テーマ名/blog というURLでアーカイブページを表示したいと考えています。ブログ(slug名 blog)というカテゴリーを親としてその中に複数の子カテゴリーがある状態です。パーマリンク設定なども関係してくるのでしょうか?
    MTから投稿記事を移行したので、カスタム構造が /%year%/%monthnum%/%day%/%postname%.html となっています。

    重ね重ねになってしまい申し訳ございませんが、アドバイスお願いいたします。

    20行目のpタグ(続きを読む)の、pとclassの間に全角スペースが使われていませんか。半角スペースに変えて試してみてください。

    これではないですか?
    <?php while (have_posts()) : the_post();
    真っ白くなる原因の多くはループやIFが閉じられてなかったりです。
    修正
    <?php while (have_posts()) : the_post(); ?>

    モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    上記のmura0403さんのご指摘ですが、

    <?php while (have_posts()) : the_post();
    	/* ループ開始 */ ?>

    2行にわたっていますがちゃんと閉じられていますので、そこは問題無いです。

    そもそもですが、query_postsを使っていること自体が誤っているように感じます。
    表示させたいのは、カスタム投稿タイプではなく通常の投稿のアーカイブですよね?
    でしたら、

    archive.php内

    <?php
    $args = array(
    	'post_type' => 'post', /* 投稿タイプ */
    	'paged' => $paged
    ); ?>
    
    <?php query_posts( $args ); ?>

    ↑カット

    loop-blog.php

    <?php
    $paged = get_query_var('paged'); //アーカイブページで投稿タイプを取得
    query_posts(
    	Array(
    		'post_type' => 'post',
    		'posts_per_page' => -1,
    		'paged' => $paged
    	)
    );
    ?>

    ↑カット

    トピック投稿者 tdf765

    (@tdf765)

    gblsmさん、mura0403さん、mypacecreatorさんご返信ありがとうございます。

    ご指摘いただいた、archive.php/loop-blog.phpの一部分をカットして、パーマリンク設定を→/%category%/%year%/%monthnum%/%day%/%postname%.html に変更したところarchiv.phpが反映されページが表示されました。ありがとうございました。

    今後の参考のために一点お聞きしたいことがあります。
    archive.phpの内容はそのままにarchive-blog.php(表示したいアーカイブページのslug名はblogです)と名前を変更すると反映されず、またページが真っ白になります。これは何故なのでしょうか?
    slug名がblogのときはarchive-blog.phpを利用するという記述が必要なのでしょうか。

    よろしくお願いいたします。

    モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    CPT UIでカスタム投稿(作品集)を作成し、アーカイブページを作成しました。
    (中略)
    一方でもともとある投稿(スタッフブログとして使用)についてアーカイブページを作成することができません。

    との記述からtdf765さんが「ブログ」とおっしゃっているもの=通常の投稿だと判断します。
    通常の投稿=投稿タイプスラッグは’post’なので、archive-blog.phpファイルは適用できません。archive.phpファイルまたはarchive-post.phpが適用される仕様です。

    参考:テンプレート階層 – WordPress Codex 日本語版
    http://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E9%9A%8E%E5%B1%A4

    トピック投稿者 tdf765

    (@tdf765)

    mypacecreatorさん、ご返信ありがとうございます。

    通常の投稿=投稿タイプスラッグは’post’なので、archive-blog.phpファイルは適用できません。archive.phpファイルまたはarchive-post.phpが適用される仕様です。

    なるほど、その様な仕組みだったのですね。
    参考URLもありがとうございます。

    ワードプレスを使い始めて日が浅いのでこれからも勉強していこうと思います。
    この度はありがとうございました。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • トピック「投稿のアーカイブページについて」には新たに返信することはできません。