teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

誤字を修正しました。

2020/11/19 13:02

投稿

Fukusuke0604
Fukusuke0604

スコア555

title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,8 @@
1
- デザインカンプ赤枠の箇所をfront-page.phpに表示したいです。
1
+ デザインカンプ赤枠の箇所をpre_get_postsを用いてfront-page.phpに表示したいです。
2
2
  ![イメージ説明](51d21748203b37aa5fd56ab7386e654a.jpeg)
3
3
 
4
4
 
5
- pre_get_postsをfunctions.phpこのようにしています。
5
+ functions.phpにpre_get_postsをこのようにしています。
6
6
 
7
7
  ```PHP
8
8
  function myPreGetPosts( $query ) {
@@ -20,7 +20,7 @@
20
20
  コード
21
21
  ```
22
22
 
23
- そしてtoppage.phpは下記のように書きました。
23
+ そしてfront-page.phpは下記のように書きました。
24
24
  ```HTML
25
25
  <div class="blog_area">
26
26
  <h2 class="blog_notice__title">ブログ</h2>

1

質問内容を簡潔に修正しました。

2020/11/19 13:02

投稿

Fukusuke0604
Fukusuke0604

スコア555

title CHANGED
@@ -1,1 +1,1 @@
1
- query_postsは非推奨なので、pre_get_postsに書き換えたいのですが上手く行きません。
1
+ pre_get_postsでTOPページ(front-page.php)投稿記事の一覧を表示したいのですが上手く行きません。
body CHANGED
@@ -1,43 +1,16 @@
1
- toppage.phpの下記画像赤枠の箇所を
1
+ デザインカンプ赤枠の箇所をfront-page.phpに表示したいです。
2
2
  ![イメージ説明](51d21748203b37aa5fd56ab7386e654a.jpeg)
3
- 下記コードquery_postsを使って投稿記事をループ表示させています。
4
3
 
5
- ```HTML
6
- <div class="blog_area">
7
- <h2 class="blog_notice__title">ブログ</h2>
8
- <?php $posts_per_page=3; // ?>
9
- <?php $paged = get_query_var('page'); //固定ページに投稿を出力するコード ?>
10
- <?php query_posts('posts_per_page='.$posts_per_page.'&paged='.$paged); //固定ページに投稿を出力するコード 現在非推奨なので変わるものを調べて?>
11
- <?php
12
- if ( have_posts() ) : while ( have_posts() ) : the_post();
13
- ?>
14
- <div class="blog__wrapper">
15
- <?php the_post_thumbnail('thumbnail', array('class' => 'blog__img')); ?>
16
- <p class="blog__category"><?php the_category(','); ?></p>
17
- <div class="blog_heading">
18
- <?php the_title( '<h2 class="blog__title"><a href="' . esc_url( get_permalink() ) . '">', '</a></h2>' ); ?>
19
- <p class="time__date"><?php echo get_the_date(); ?></p>
20
- </div>
21
- </div>
22
- <?php endwhile; //繰り返し処理終了 ?>
23
- <?php else : //条件分岐:投稿がない場合は ?>
24
- <h2 class="blog__title">投稿が見つかりません。</h2>
25
- <?php endif; //条件分岐終了 ?>
26
- <?php wp_reset_query();// 投稿データのリセット ?>
27
- </div>
28
- ```
29
4
 
30
- しかしquery_postsは非推奨ということでpre_get_postsを使って表示させようと思っているのですが上手く行きせん
5
+ pre_get_postsをfunctions.phpはこのようにしていま
31
6
 
32
- pre_get_postsに書き換えるにあたって、functions.phpはこのようにしています。
33
-
34
7
  ```PHP
35
8
  function myPreGetPosts( $query ) {
36
9
  if ( is_admin() || ! $query->is_main_query() ){
37
10
  return;
38
11
  }
39
12
  // 指定したページとメインクエリの場合に限定
40
- if ( $query->is_toppage() && $query->is_main_query() ) {
13
+ if ( $query->is_front_page() && $query->is_main_query() ) {
41
14
  $query->set( 'post_type', 'post' );
42
15
  $query->set( 'posts_per_page', '3' );
43
16
  }
@@ -46,9 +19,8 @@
46
19
  add_action( 'pre_get_posts', 'myPreGetPosts' );
47
20
  コード
48
21
  ```
49
- ※$query->is_home() でも結果は変わりません。
50
22
 
51
- そしてquery_postsを使用していたtoppage.phpは下記のように書き直しました。
23
+ そしてtoppage.phpは下記のように書きました。
52
24
  ```HTML
53
25
  <div class="blog_area">
54
26
  <h2 class="blog_notice__title">ブログ</h2>
@@ -71,12 +43,8 @@
71
43
  コード
72
44
  ```
73
45
 
74
- しかし結果は以下の画像のように toppage.phpがループ表示されています。
46
+ しかし結果は以下の画像のように front-page.phpがループ表示されています。
75
47
  ![イメージ説明](23e3908aa729e5462133e38abad6383e.jpeg)
76
48
 
77
- pre_get_postsの他にもquery_postsの代わりになるのはget_posts、WP_Queryもあるようなのですがget_postsはどのように書き換えれば良いのかよくわかりませんでした。。。
78
- pre_get_postsが一番管理しやすそうに思えたのでpre_get_postsで試しています。
79
49
 
80
-
81
- pre_get_postsでquery_post書き換えた際、自分はどこを間違えてるのでしょうか?
50
+ pre_get_postsでTOPページ(front-page.php)に投稿記事一覧表示させるにはどうすれば良いでしょうか? 教えてください。
82
- 教えてください。