Title: 未来の投稿を表示、未来の投稿が無い場合は、特定の記事を表示する方法
Last modified: 2016年7月30日

---

# 未来の投稿を表示、未来の投稿が無い場合は、特定の記事を表示する方法

 *  解決済 [masahiko](https://ja.wordpress.org/support/users/masahiko/)
 * (@masahiko)
 * [13年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e6%9c%aa%e6%9d%a5%e3%81%ae%e6%8a%95%e7%a8%bf%e3%82%92%e8%a1%a8%e7%a4%ba%e3%80%81%e6%9c%aa%e6%9d%a5%e3%81%ae%e6%8a%95%e7%a8%bf%e3%81%8c%e7%84%a1%e3%81%84%e5%a0%b4%e5%90%88%e3%81%af%e3%80%81%e7%89%b9/)
 * こんにちは
 * サイトトップページに記事の一覧を作成しました。
    実装したい分岐は、
 * １、記事カテゴリーID:1に投稿された未来の記事のタイトル、日時、本文抜粋(ライブ
   の情報など)を表示させる。
    （一番近い日程の1件のみ）
 * ２、記事カテゴリーID:1の未来の記事が無い場合は、記事p=10のタイトル、日時、本文
   抜粋を表示させる。
 * 以上の分岐を正常に機能させたいのですが、上手くいきません。
 * 現在１の部分までは正常に機能するページは作れました。
 * <?php function filter_where($where = ”) {
    $where .= ” AND post_date < ‘” . date(‘
   Y-m-d’, strtotime(‘1 days’)) . “‘”; return $where; } add_filter(‘posts_where’,‘
   filter_where’);?> <?php query_posts(‘&order=ASC&cat=1&showposts=1’);?> <?php 
   if(have_posts()):while(have_posts()):the_post();?>”> <div class=”news_post”> 
   <div class=”post_title”> <span class=”date”><?php the_time(‘m.d.Y’);?></span>
   <p><?php if(mb_strlen($post->post_title)>20) { $title= mb_substr($post->post_title,
   0,20) ; echo $title. “…”; } else {echo $post->post_title;}?></p> </div>
 * <?php $postImage = getPostImage($post);
    if($postImage == null){ echo ‘<div class
   =”img_flame”><div class=”first_img”><img class=”first_img” width=”100%” src=”
   xxx.jpg” /></div></div>’; }else{ echo ‘<div class=”img_flame”><div class=”first_img”
   ><img class=”first_img” alt=”‘.$postImage[“alt”].'”width=”100%” src=”‘.$postImage[“
   url”].'” /></div></div>’; } ?> <div class=”post_content”> <p><?php echo mb_substr(
   strip_tags($post-> post_content), 0, 50); ?></p> <p class=”more-link”>>>READ 
   MORE</p > </div> </div> <?php endwhile;?> <?php endif;?> <?php wp_reset_query();?
   > <?php remove_filter(‘posts_where’, ‘filter_where’);?>
 * これに、どのような条件分岐をつければ、良いのかわかりません。
 * お分かりになる方がいらっしゃいましたら、教えて頂きたいと思っております。

4件の返信を表示中 - 1 - 4件目 (全4件中)

 *  [nobita](https://ja.wordpress.org/support/users/nobita/)
 * (@nobita)
 * [13年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e6%9c%aa%e6%9d%a5%e3%81%ae%e6%8a%95%e7%a8%bf%e3%82%92%e8%a1%a8%e7%a4%ba%e3%80%81%e6%9c%aa%e6%9d%a5%e3%81%ae%e6%8a%95%e7%a8%bf%e3%81%8c%e7%84%a1%e3%81%84%e5%a0%b4%e5%90%88%e3%81%af%e3%80%81%e7%89%b9/#post-161332)
 * こんにちは
 * else を追加すればいいと思います。（未テスト）
 *     ```
       if ( have_posts( ) ) {
         while(have_posts()){
   
          /*.....*/
         }
       } else { 
   
         /*　ここに、投稿がない場合の処理 */
       }
       ```
   
 *  トピック投稿者 [masahiko](https://ja.wordpress.org/support/users/masahiko/)
 * (@masahiko)
 * [13年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e6%9c%aa%e6%9d%a5%e3%81%ae%e6%8a%95%e7%a8%bf%e3%82%92%e8%a1%a8%e7%a4%ba%e3%80%81%e6%9c%aa%e6%9d%a5%e3%81%ae%e6%8a%95%e7%a8%bf%e3%81%8c%e7%84%a1%e3%81%84%e5%a0%b4%e5%90%88%e3%81%af%e3%80%81%e7%89%b9/#post-161335)
 * nobita様
 * 回答ありがとうございます。
    教えていただいた通り、else節を入れたコードを作成しま
   したが、 今度は記事自体が表示されず、上手く作動しませんでした。
 * <?php function filter_where($where = ”) {
    $where .= ” AND post_date < ‘” . date(‘
   Y-m-d’, strtotime(‘1 days’)) . “‘”; return $where; } add_filter(‘posts_where’,‘
   filter_where’);?> <?php query_posts(‘&order=ASC&cat=1&showposts=1’);?> <?php 
   if(have_posts()):while(have_posts()):the_post();?>”> <div class=”news_post”> 
   <div class=”post_title”> <span class=”date”><?php the_time(‘m.d.Y’);?></span>
   <p><?php if(mb_strlen($post->post_title)>20) { $title= mb_substr($post->post_title,
   0,20) ; echo $title. “…”; } else {echo $post->post_title;}?></p> </div>
 * <?php $postImage = getPostImage($post);
    if($postImage == null){ echo ‘<div class
   =”img_flame”><div class=”first_img”><img class=”first_img” width=”100%” src=”
   xxx.jpg” /></div></div>’; }else{ echo ‘<div class=”img_flame”><div class=”first_img”
   ><img class=”first_img” alt=”‘.$postImage[“alt”].'”width=”100%” src=”‘.$postImage[“
   url”].'” /></div></div>’; } ?> <div class=”post_content”> <p><?php echo mb_substr(
   strip_tags($post-> post_content), 0, 50); ?></p> <p class=”more-link”>>>READ 
   MORE</p > </div> </div> <?php endwhile;?> <?php remove_filter(‘posts_where’, ‘
   filter_where’);?> <?php wp_reset_query();?>
 * <?php else :?>
    <?php query_posts(‘p=10’);?> <?php if(have_posts()):?> <?php 
   while(have_posts()):the_post();?>”>
 * <div class=”news_post”>
    <div class=”post_title”> <span class=”date”><?php the_time(‘
   m.d.Y’);?></span> <p><?php if(mb_strlen($post->post_title)>20) { $title= mb_substr(
   $post->post_title,0,20) ; echo $title. “…”; } else {echo $post->post_title;}?
   ></p> </div> <?php $postImage = getPostImage($post); if($postImage == null){ }
   else{ echo ‘<div class=”img_flame”><div class=”first_img”><img class=”first_img”
   alt=”‘.$postImage[“alt”].'”width=”100%” src=”‘.$postImage[“url”].'” /></div></
   div>’;} ?>
 * <div class=”post_content”>
    <p><?php echo mb_substr(strip_tags($post-> post_content),
   0, 50); ?></p> <p class=”more-link”>>>READ MORE</p > </div> </div> <?php wp_reset_query();?
   >
 * <?php endwhile?><?php endif?>
    <?php endif?>
 * 以上のコードですが、何か間違いがあるのでしょうか？
 *  [Pineapplen](https://ja.wordpress.org/support/users/pineapplen/)
 * (@pineapplen)
 * [13年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e6%9c%aa%e6%9d%a5%e3%81%ae%e6%8a%95%e7%a8%bf%e3%82%92%e8%a1%a8%e7%a4%ba%e3%80%81%e6%9c%aa%e6%9d%a5%e3%81%ae%e6%8a%95%e7%a8%bf%e3%81%8c%e7%84%a1%e3%81%84%e5%a0%b4%e5%90%88%e3%81%af%e3%80%81%e7%89%b9/#post-161336)
 * else文の後が実行されていないのであれば、問題はそこでしょうね。
    検証していません
   が、特定の投稿を呼び出すのは　get_post()　でＯＫでは？
 *  トピック投稿者 [masahiko](https://ja.wordpress.org/support/users/masahiko/)
 * (@masahiko)
 * [13年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e6%9c%aa%e6%9d%a5%e3%81%ae%e6%8a%95%e7%a8%bf%e3%82%92%e8%a1%a8%e7%a4%ba%e3%80%81%e6%9c%aa%e6%9d%a5%e3%81%ae%e6%8a%95%e7%a8%bf%e3%81%8c%e7%84%a1%e3%81%84%e5%a0%b4%e5%90%88%e3%81%af%e3%80%81%e7%89%b9/#post-161339)
 * Pineapplen様
 * ありがとうございました。
    以下のように変更して、解決いたしました。
 *     ```
       <?php function filter_where($where = '') {
       $where .= " AND post_date > '" . date('Y-m-d', strtotime('1 days')) . "'";
       return $where;}
       add_filter('posts_where', 'filter_where');?>
       <?php query_posts('order=ASC&cat=1&showposts=1');?>
       <?php if(have_posts()):?>
       <?php while(have_posts()):the_post();?>
       <a href="<?php the_permalink();?>">
   
       <div class="news_post">
       <div class="post_title">
       <span class="date"><?php the_time('m.d.Y');?></span>
       <p><?php if(mb_strlen($post->post_title)>20)
       { $title= mb_substr($post->post_title,0,20) ; echo $title. "...";
       } else {echo $post->post_title;}?></p>
       </div>
   
       <?php  $postImage = getPostImage($post);
       if($postImage == null){
       }else{
       echo '<div class="img_flame"><div class="first_img"><img class="first_img" alt="'.$postImage["alt"].'"width="100%" src="'.$postImage["url"].'" /></div></div>';} ?>
       <div class="post_content">
       <p><?php echo mb_substr(strip_tags($post-> post_content), 0, 50); ?></p>
       <p class="more-link">>>READ MORE</p >
       </div>
       </div></a>
       <?php endwhile; ?>
   
       <?php wp_reset_query();?>
   
       <?php else: ?>
       <?php global $post;
       $myposts = get_posts('p=10');
       foreach($myposts as $post) : setup_postdata($post); ?>
       <a href="<?php the_permalink();?>">
   
       <div class="news_post">
       <div class="post_title">
       <span class="date"><?php the_time('m.d.Y');?></span>
       <p><?php if(mb_strlen($post->post_title)>20)
       { $title= mb_substr($post->post_title,0,20) ; echo $title. "...";
       } else {echo $post->post_title;}?></p>
       </div>
       <?php  $postImage = getPostImage($post);
       if($postImage == null){
       }else{
       echo '<div class="img_flame"><div class="first_img"><img class="first_img" alt="'.$postImage["alt"].'"width="100%" src="'.$postImage["url"].'" /></div></div>';
       } ?>
   
       <div class="post_content">
       <p><?php echo mb_substr(strip_tags($post-> post_content), 0, 50); ?></p>
       <p class="more-link">>>READ MORE</p >
       </div>
       </div></a>
       <?php endforeach; ?>
       <?php wp_reset_postdata(); ?>
   
       <?php endif; ?>
   
       <?php remove_filter('posts_where', 'filter_where');?>
       ```
   

4件の返信を表示中 - 1 - 4件目 (全4件中)

 トピック「未来の投稿を表示、未来の投稿が無い場合は、特定の記事を表示する方法」に
は新たに返信することはできません。

## タグ

 * [add Filter](https://ja.wordpress.org/support/topic-tag/add-filter/)
 * [if](https://ja.wordpress.org/support/topic-tag/if/)
 * [wp_query](https://ja.wordpress.org/support/topic-tag/wp_query/)

 * フォーラム: [使い方全般](https://ja.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 4件の返信
 * 3人の参加者
 * 最後の返信者: [masahiko](https://ja.wordpress.org/support/users/masahiko/)
 * 最後の活動: [13年、 5ヶ月前](https://ja.wordpress.org/support/topic/%e6%9c%aa%e6%9d%a5%e3%81%ae%e6%8a%95%e7%a8%bf%e3%82%92%e8%a1%a8%e7%a4%ba%e3%80%81%e6%9c%aa%e6%9d%a5%e3%81%ae%e6%8a%95%e7%a8%bf%e3%81%8c%e7%84%a1%e3%81%84%e5%a0%b4%e5%90%88%e3%81%af%e3%80%81%e7%89%b9/#post-161339)
 * 状態: 解決済

## トピック

### 人気のトピック

### 返信がないトピック

### サポート関連ではないトピック

### 解決済みのトピック

### 未解決のトピック

### すべてのトピック
