web-dev-qa-db-ja.com

カスタム投稿タイプを表示するためのページテンプレートを作成する方法

カスタムコンテンツタイプの投稿を表示するためのページテンプレートファイルを作成したいです。 このサイト から見つけたこのコードを使って作業していましたが、何も表示されません。誰もが問題が何であるか知っていますか?

<?php /* Template Name: Custom Post Type Archive */
get_header(); ?>

<?php
global $query_string;
query_posts($query_string . "post_type=YOUR-CUSTOM-POST-TYPE&post_status=publish&posts_per_page=10");
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>

<?php endwhile;
endif; ?>
<div class="navigation">
    <div class="alignleft"><?php next_posts_link('Previous entries') ?></div>
    <div class="alignright"><?php previous_posts_link('Next entries') ?></div>
</div>
<?php wp_reset_query(); ?>

<?php get_sidebar(); ?>
<?php get_footer();?>
2
Keith Groben

クエリを使用する必要はありません。サンプルを作成し、single-YOURCUSTOMPOSTNAME.phpという名前を付けるだけです。その他の参照については、以下を参照してください。

6
andresmijares25

新しいカスタム投稿タイプを作成した場合、それらをサイトに表示するには、テーマフォルダに次のファイルを使用する必要があります。

  • アーカイブ - {CPT} .php
  • single- {CPT} .php(単一の投稿の表示方法が異なる場合はオプション)

{CPT}を設定したカスタム投稿タイプの名前に置き換えます。それから、それらのファイルであなたのindex.phpファイルのように通常のループをするだけです。

例えば。

<?php get_header(); ?>

    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

        <?php /* Your Posts Content */ ?>

    <?php endwhile; else: ?>
        <div class="post">
            <p><?php _e('Sorry, no posts matched your criteria.', "hi-rezz"); ?></p>
        </div>
    <?php endif; ?>

<?php get_footer(); ?>
4
Brady