サポート » 使い方全般 » カスタム投稿タイプのアーカイブについて

  • WordPress初心者です。

    カスタム投稿タイプを使用しています。
    [hakkutsu]というpost_typeのアーカイブについてですが
    カスタム投稿が0件の場合に、archive-hakkutsu.php内で
    「現在、情報はありません」と表示させたいのですが
    投稿が0件ですと、404に飛んでしまいます。
    (カスタム投稿のアーカイブページを1つのコンテンツにしている為、404に飛ばないようにしたいのです)

    ‘has_archive’ => true, をfunctions.php内に追加しているので
    カスタム投稿が1件あれば、archive-hakkutsu.phpテンプレートがちゃんと表示されます。

    カスタム投稿ではなく、通常投稿(post)のアーカイブページでは、
    投稿がなくても、404には飛ばないので、
    カスタム投稿では、functions.php または archive-hakkutsu.php に何か指定する必要があるのでしょうか。
    どうぞよろしくお願いいたします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • モデレーター gatespace

    (@gatespace)

    こんにちは。
    テーマファイルに関する質問なら、今現在のコードを書いてもらえると
    解答する方が分かりやすいですよ。

    とはいえ、、デフォルトテーマTwenty Elevenのarchive.phpが参考になります。
    archive-hakkutsu.php 内で if ( have_posts() )とかを以下のようにしてみてはどうでしょ。

    <?php
    if ( have_posts() ) : // 投稿がある場合の処理
    	 /* Start the Loop */
    	while ( have_posts() ) : the_post();
    		/* 記事タイトルとか各投稿へのリンクとか */
    	endwhile;
    
    	/* この辺にページ送りのナビゲーションとか */
    
    else : // 投稿がない場合の処理
    	/* マークアップはお好みで */
    	echo "現在、情報はありません";
    endif;
    ?>

    トピック投稿者 delico9

    (@delico9)

    >gatespace様

    早速のご回答、ありがとうございます!
    コードを書いていなかったにも関わらずお答えいただきありがとうございますm(_ _)m
    Twenty Elevenを元に、テンプレートをカスタマイズしています。
    (しかし、全てコードを入れ替えて使っています^^;)

    お恥ずかしながらphpも全くの初心者でして…^^;

    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    
    /*ループさせたい内容*/
    
    <?php endwhile; ?>
    
    <?php else : ?>
    <?php echo "現在投稿はありません"; ?>
    <?php endif; ?>

    上記のコードで、カスタム投稿が1件以上ある場合、
    アーカイブ表示は出来たのですが、
    やはりアーカイブが0件の場合(カスタム投稿が全くない場合)には
    [現在投稿はありません]が表示されるのではなく、404へ飛んでしまいます^^;
    何故でしょう……

    モデレーター gatespace

    (@gatespace)

    まずは、テーマをTwenty Elevenに戻して確認してみてください。
    そしてカスタム投稿のアーカイブを表示してみてください。
    (http://example.com/?post_type=hakkutsu)
    このときTwenty Elevenはarchive.phpを利用して表示します。(私の方で確認済みです)

    なお、実際にどのテンプレートファイルで表示されているかは、
    header.php にでも 以下のコードを加えることで確認できます。

    global $template;
    echo '<code>'.$template."</code>";

    ここまで問題が無いのであれば、
    カスタマイズされているテーマの問題となります。

    Twenty Elevenを元にされていると言うことなので、
    カスタマイズしたテーマとTwenty Elevenで違う部分をすべてチェックしてみてください。

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