2017-11-04 11 views
0

Okey、これはおそらく非常にノブの質問ですが、WordPressの子テーマで1ページにすべてのカスタム投稿タイプアイテムを表示する方法が不思議でした。WordPressのCPTアイテムを1ページに表示

私の子供のテーマファイルがあります。 のfunctions.phpのstyle.css

がのが私のCPTがという名前で言ってみましょうと私はというページ上のすべての曲を表示したいと思いますexample.com/music

誰でもこれを達成する方法はありますか?どんな助けでも大歓迎です。あなたが名前でをCPTを作成すると

答えて

0

は、あなたの投稿はpost_typeを持って、あなたは他のpost_typeのようにそれを照会し、ループでそれを印刷することができます。上記において

query_posts(array('post_type' => 'songs', 'posts_per_page' => '5', 'orderby' => 'date', 'order' => 'DESC', 'offset' => 0)); 
if(have_posts()) { 
    while(have_posts()) : the_post(); 
     get_template_part('content', 'songs'); 
    endwhile; 
} 
wp_reset_query(); 

を例私はpost_typeのhtmlレンダリングにオプションのコンテンツテンプレートを使用して、自分のコードをより構造化します。

だから私は、CPTの出力を定義することができます名前content-songs.phpと私のテンプレートフォルダ内のファイルが存在します:あなたはたページテンプレートを使用することができますページにあなたのCPTを出力するには

<article class="songs"> 
    <header> 
     <h1><?php the_title(); ?></h1> 
    </header> 

    <div> 
     <?php the_content(); ?> 
    </div> 
</article> 

「カスタムページタイプ」のようなものです。ページテンプレートの簡単な例は次のスニペットです。ページテンプレートを使用するには、例えばテンプレートフォルダにpage-songs.phpと呼ばれるファイルを作成する必要があります。

<?php 
/** 
* Template Name: Songs 
* 
* @package WordPress 
* @subpackage YOUR THEME NAME 
* @since MyTheme 2.0 
*/ 
get_header(); 

?> 
    <div class="song-list"> 
     <?php 
     query_posts(array('post_type' => 'songs', 'posts_per_page' => '5', 'orderby' => 'date', 'order' => 'DESC', 'offset' => 0)); 
     if(have_posts()) { 
      while(have_posts()) : the_post(); 
       get_template_part('content', 'songs'); 
      endwhile; 
     } 
     wp_reset_query(); 
     ?> 
    </div> 
<?php 
get_footer(); 
?> 

ここで、CPT出力コードはページテンプレートに含まれています。 Wordpressで新しいページを作成し、(新しく登場したダイアログで)そのページで使用するテンプレートを選択するだけです。ここではテンプレートの曲もあります。が利用可能です。あなたのページを作成したら、あなたのCPTの曲を見てください。

+0

です。クエリはどこに置くのですか?私はまだWordPressを学んでいるので、music.phpのようなファイルがあると思ったのですか? – GKMelbo

+0

Okeyだから、 'content-songs.php'というファイルを作成して記事に貼り付けました。私は 'functions.php'ファイルと' content-songs.php'ファイルの両方にクエリを追加しようとしましたが、まだ何もありません。 – GKMelbo

+0

最初のクエリコードブロックは、CPTを出力する方法の単なる例です。 あなたのCPTをどこに出力したいのか、これらを他のポストタイプと混在させたいのかによって大きく異なります。簡単な例の1つは、最初のコードスニペットを 'sidebar.php'に入れることです。しかし、一般的には、それはwordpress(例えば 'index.php'、' page-XYZ.php'、 'sidebar.php' ...)によってレンダリングされるテンプレートの場所に入れなければなりません。 – Mo0812

関連する問題