こんにちは
else を追加すればいいと思います。(未テスト)
if ( have_posts( ) ) {
while(have_posts()){
/*.....*/
}
} else {
/* ここに、投稿がない場合の処理 */
}
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?>
以上のコードですが、何か間違いがあるのでしょうか?
else文の後が実行されていないのであれば、問題はそこでしょうね。
検証していませんが、特定の投稿を呼び出すのは get_post() でOKでは?
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');?>