質問編集履歴
2
誤字を修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
デザインカンプ赤枠の箇所をfront-page.phpに表示したいです。
|
1
|
+
デザインカンプ赤枠の箇所をpre_get_postsを用いてfront-page.phpに表示したいです。
|
2
2
|

|
3
3
|
|
4
4
|
|
5
|
-
|
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
|
-
そして
|
23
|
+
そしてfront-page.phpは下記のように書きました。
|
24
24
|
```HTML
|
25
25
|
<div class="blog_area">
|
26
26
|
<h2 class="blog_notice__title">ブログ</h2>
|
1
質問内容を簡潔に修正しました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
pre_get_postsでTOPページ(front-page.php)に投稿記事の一覧を表示したいのですが上手く行きません。
|
body
CHANGED
@@ -1,43 +1,16 @@
|
|
1
|
-
|
1
|
+
デザインカンプ赤枠の箇所をfront-page.phpに表示したいです。
|
2
2
|

|
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
|
-
|
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->
|
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
|
-
そして
|
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
|
-
しかし結果は以下の画像のように
|
46
|
+
しかし結果は以下の画像のように front-page.phpがループ表示されています。
|
75
47
|

|
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で
|
50
|
+
pre_get_postsでTOPページ(front-page.php)に投稿記事一覧を表示させるにはどうすれば良いでしょうか? 教えてください。
|
82
|
-
教えてください。
|