K-moya
フォーラムへの返信
2件の返信を表示中 - 1 - 2件目 (全2件中)
-
フォーラム: 使い方全般
返信が含まれるトピック: get_postsで0件の時 「Undefined offset: 0 」 が出るhideokamotoさま、Toro_Unitさま。
$postsと言う変数名が原因でした。変数名を変更し正常に動作しました。
今回は、single.phpで下記のように別テンプレートを呼び出しており、該当の関連記事はこれで呼び出されるcontent-single.phpを書き換えていたのですが、
single.php
<?php while ( have_posts() ) : the_post(); ?> <?php get_template_part( 'content', 'single' ); ?> <?php post_nav(); ?> <?php if ( comments_open() || get_comments_number() ) : comments_template(); endif; ?> <?php endwhile; ?>
content-single.phpでの該当コードで、下記のように$postsと言う変数名を使ってしまっていたため、
content-single.php
$posts = get_posts( $args );
single.phpに戻ったときに、そちらでも使っている変数名$postsの中身が書き換わってしまいエラーとなっていました。
これを期に面倒で入れていなかったxdebugを入れ、原因が分かりました。
色々見てた頂いたhideokamotoさま、Toro_Unitさま、本当にありがとうございました!
フォーラム: 使い方全般
返信が含まれるトピック: get_postsで0件の時 「Undefined offset: 0 」 が出るhideokamotoさま
説明が分かりにくくてすみません。
下記のコードを実行し、結果が0件の場合のみ、表題のNoticeが出ます。
(1件以上の場合はNoticeが出ません&0件の場合でもNoticeは出るものの動作はしています)$args=array('exclude' => $post->ID ,'category' => $category_id); $posts = get_posts( $args ); if (! $posts){ echo "○○カテゴリーの記事はまだ1件もありません。"; } else { postを表示する処理 }
query.phpの該当の場所はこんなかんじです。
$this->post_countは0(-1 ?)な気がするのですが、3750に行ってしまうのですね。なんでだろ…query.php
/** * Rewind the posts and reset post index. * * @since 1.5.0 * @access public */ 3747 public function rewind_posts() { 3748 $this->current_post = -1; 3749 if ( $this->post_count > 0 ) { 3750 $this->post = $this->posts[0]; 3751 } 3752 }
2件の返信を表示中 - 1 - 2件目 (全2件中)