質問編集履歴

1 追記

Capeta

Capeta score 11

2019/05/15 21:40  投稿

wordpressの投稿タイプによって表示を変更したい
### 投稿タイプによって表示項目を変更したい
Wordpressの自作のテーマを改良しているのですが、
記事一覧に異なるpost_typeの投稿投稿日時順に表示をして、
さらにpost_type毎に違う要素を表示したいと考えております。
しかし、違うpost_typeの記事を表示することは出来たのですが、
そこからpost_type毎に条件分岐をすることが出来ません。
不勉強で申し申し訳ございませんが、
お力を貸していただけると幸いです。
### 現在のソースコード
```php
<?php
$args = array(
 'post_type' => array('news','sample'),
);
$wp_query = new WP_Query( $args ); ?>
<?php
if ( $wp_query->have_posts() ) {
 while ( $wp_query->have_posts() ){
   $wp_query->the_post();
   ?>
   <article>
     <h2>
       <?php the_title(); ?>
     </h2>
     <p>
       <?php the_content(); ?>
     </p>
   </article>
   <?php
 }
}
?>
```
### 実装希望例
```news
     <h2>
       newsタイトル
     </h2>
     <p>
       記事の内容
     </p>
```
```sample
     <h2 class="hoge">//post_typeによって表示を変えたい
       sampleタイトル
     </h2>
     <p>
       //定型文を表示
     </p>
   
```  
 
皆様のおかげでとりあえず動くようにはなりました。  
今回はposttypeが2つしかなかったので以下でも問題なさそうです。  
 
### 回答反映例  
 
```php  
 
    <?php  
$args = array(  
 'post_type' => array('post','sample'),  
);  
$wp_query = new WP_Query( $args ); ?>  
<?php  
if ( $wp_query->have_posts() ) {  
 while ( $wp_query->have_posts() ){  
   $wp_query->the_post();  
   ?>  
   <?php $posttype = get_post_type( get_the_ID() );  
if ( $posttype == 'post' ) {  
   echo '<h2>'  
            . get_the_title() .  
         '</h2>';  
} else {  
   echo '<h2 class="hoge">' . get_the_title() . '</h2><p> //定型文を表示 </p>';  
} ?>  
   <?php  
 }  
}  
?>  
     
```
  • PHP

    31401 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • WordPress

    12276 questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る