質問編集履歴

6

用語を統一致しました。

2018/11/30 14:08

投稿

makirons
makirons

スコア20

test CHANGED
File without changes
test CHANGED
@@ -26,19 +26,19 @@
26
26
 
27
27
 
28
28
 
29
- 正常に動作するのは↓だけです。
29
+ 正常に動作するのは↓を表示中のだけです。
30
30
 
31
- example.com/apple/
31
+ example.com/apple/
32
32
 
33
33
  これに属するページを表示中の場合にだけ、ページネーションが正常に動作します。
34
34
 
35
35
 
36
36
 
37
- しかし↓は動作しません。
37
+ しかし↓を表示中には動作しません。
38
38
 
39
- example.com/
39
+ example.com
40
40
 
41
- example.com/orange/
41
+ example.com/orange/
42
42
 
43
43
  このようなページを表示中の場合において、ページネーションが同じ内容を表示するという状態です。
44
44
 
@@ -70,7 +70,7 @@
70
70
 
71
71
  'post__in' => $postdate,
72
72
 
73
- 'post_type' => 'post'
73
+ 'post_type' => 'apple'
74
74
 
75
75
  );
76
76
 
@@ -114,7 +114,7 @@
114
114
 
115
115
  ```
116
116
 
117
- 記事ページ以外でも使えるようにするためには、どのような方法が考えられますでしょうか?
117
+ example.com/apple/… に属さないページでも動作するようにするためには、どのような方法が考えられますでしょうか?
118
118
 
119
119
  解決の指針をご教授頂きたく質問させて頂きました。
120
120
 

5

問題が生じるケースを「親のスラッグが違う場合」としました。

2018/11/30 14:08

投稿

makirons
makirons

スコア20

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- 記事ページでしかループが動作しない問題に遭遇致しました。
1
+ 親のスラッグが違うとループが動作しない問題に遭遇致しました。
2
2
 
3
3
 
4
4
 
@@ -8,17 +8,45 @@
8
8
 
9
9
 
10
10
 
11
- ところが、記事ページでしか動作せず、トップページなどで使えせん
11
+ ところが、記事ページでしか動作せず、トップページなどのように親のスラッグが違う場合に問題が生じ
12
12
 
13
- 具体的には**ページネーションによるページ遷移において同じ内容を表示する**というです。
13
+ 具体的には**ページネーションによるページ遷移において同じ内容を表示する**という問題です。
14
14
 
15
15
 
16
16
 
17
- 記事ページ以外でも使えるようにするためには、どのような方法が考えられますでしょうか?
17
+ ###例
18
18
 
19
- 解決の指針をご教授頂きたく質問させて頂きました。
19
+ example.com/apple/morning
20
20
 
21
+ example.com/apple/afternoon
22
+
23
+ example.com/apple/evening
24
+
25
+ などの記事一覧を表示させるわけですが、
26
+
27
+
28
+
29
+ 正常に動作するのは↓だけです。
30
+
31
+ example.com/apple/
32
+
33
+ これに属するページを表示中の場合にだけ、ページネーションが正常に動作します。
34
+
35
+
36
+
21
- 何卒宜くお願い申上げ
37
+ ↓では動作しせん
38
+
39
+ example.com/
40
+
41
+ example.com/orange/
42
+
43
+ このようなページを表示中の場合において、ページネーションが同じ内容を表示するという状態です。
44
+
45
+
46
+
47
+
48
+
49
+
22
50
 
23
51
  ###ソースコード
24
52
 
@@ -85,3 +113,9 @@
85
113
  }
86
114
 
87
115
  ```
116
+
117
+ 記事ページ以外でも使えるようにするためには、どのような方法が考えられますでしょうか?
118
+
119
+ 解決の指針をご教授頂きたく質問させて頂きました。
120
+
121
+ 何卒宜しくお願い申し上げます。

4

文章を一部訂正致しました。

2018/11/30 14:05

投稿

makirons
makirons

スコア20

test CHANGED
@@ -1 +1 @@
1
- WordPressでトップページの場合だけ、ループが使えない問題
1
+ WordPressで記事ページでしかループが使えない問題
test CHANGED
@@ -1,4 +1,4 @@
1
- トップページでのみ、ループが動作しない問題に遭遇致しました。
1
+ 記事ページでしかループが動作しない問題に遭遇致しました。
2
2
 
3
3
 
4
4
 
@@ -9,6 +9,8 @@
9
9
 
10
10
 
11
11
  ところが、記事ページでしか動作せず、トップページなどで使えません。
12
+
13
+ 具体的には**ページネーションによるページ遷移において同じ内容を表示する**という点です。
12
14
 
13
15
 
14
16
 

3

質問内容に不要な部分を削除致しました。

2018/11/30 13:52

投稿

makirons
makirons

スコア20

test CHANGED
File without changes
test CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ###質問
6
6
 
7
- 下記のソースコードは、記事の閲履歴とページネーションを表示するものです。問題なく動作します。
7
+ 下記のソースコードは、記事覧とページネーションを表示するものです。
8
8
 
9
9
 
10
10
 
@@ -24,17 +24,7 @@
24
24
 
25
25
  function readpost_typecheack() {
26
26
 
27
-
28
-
29
- // readpostは閲覧履歴の取得です
30
-
31
- $postdate = readpost();
32
-
33
- if( !empty($postdate) ):
34
-
35
- ?>
27
+ ?>
36
-
37
-
38
28
 
39
29
  <ul>
40
30
 
@@ -88,7 +78,7 @@
88
78
 
89
79
  </ul>
90
80
 
91
- <?php endif;
81
+ <?php
92
82
 
93
83
  }
94
84
 

2

「トップページでだけ使えない」のではなく、「記事ページでしか使えない」でした。

2018/11/30 13:49

投稿

makirons
makirons

スコア20

test CHANGED
File without changes
test CHANGED
@@ -8,9 +8,11 @@
8
8
 
9
9
 
10
10
 
11
- ところが、トップページでのみ動作しません。
11
+ ところが、記事ページでしか動作せず、トップページなど使えません。
12
12
 
13
13
 
14
+
15
+ 記事ページ以外でも使えるようにするためには、どのような方法が考えられますでしょうか?
14
16
 
15
17
  解決の指針をご教授頂きたく質問させて頂きました。
16
18
 

1

問題点が明確になったために質問内容をそれに沿ったものに修正致しました。

2018/11/30 13:45

投稿

makirons
makirons

スコア20

test CHANGED
@@ -1 +1 @@
1
- WordPressページションで、同じ内容出力されてしまう問題
1
+ WordPressでトップページの場合だけ、ル使えない問題
test CHANGED
@@ -1,38 +1,42 @@
1
- ページネーションジ遷移しても、同じ内容出力されてまう問題に遭遇致しました。
1
+ トップページでのみ、ル動作ない問題に遭遇致しました。
2
2
 
3
3
 
4
4
 
5
5
  ###質問
6
6
 
7
- WordPressでカタム投稿タイプ「mypost」の記事を出力し、そのページネーションを設置致ております。
7
+ 下記のソーコードは、記事の閲履歴とページネーションを表示するものです。問題なく動作します。
8
8
 
9
9
 
10
10
 
11
- 後述するコードは<?php readpost_typecheack(100); ?>で閲覧履歴を100件出力し、それを15件ずつに分割してページネーションを付ける。という機能を実現せんとするものです
11
+ ところがトップページでのみ動作しません。
12
12
 
13
13
 
14
14
 
15
- しかしながら、ページネーションで前後に移動しても、同じ記事だけが表示てしまうという状況です
15
+ 解決の指針をご教授頂きたく質問頂きま
16
+
17
+ 何卒宜しくお願い申し上げます。
16
18
 
17
19
  ###ソースコード
18
20
 
19
21
  ```php
20
22
 
21
- /**
23
+ function readpost_typecheack() {
22
24
 
23
- * ★記事リストの表示
24
25
 
25
- */
26
26
 
27
- function readpost_typecheack( $postnum ) {
27
+ // readpostは閲覧履歴の取得です
28
28
 
29
- $numlist = 0;
29
+ $postdate = readpost();
30
+
31
+ if( !empty($postdate) ):
30
32
 
31
33
  ?>
32
34
 
35
+
36
+
33
37
  <ul>
34
38
 
35
- <?php
39
+ <?php
36
40
 
37
41
  $paged = get_query_var('paged') ?: 1;
38
42
 
@@ -44,7 +48,7 @@
44
48
 
45
49
  'post__in' => $postdate,
46
50
 
47
- 'post_type' => 'mypost'
51
+ 'post_type' => 'post'
48
52
 
49
53
  );
50
54
 
@@ -54,17 +58,13 @@
54
58
 
55
59
  if ( $the_query->have_posts() ) :
56
60
 
57
- while ( $the_query->have_posts() ) : $the_query->the_post();
61
+ while ( $the_query->have_posts() ) : $the_query->the_post();
58
62
 
59
- if($postnum==$numlist){ break; }
63
+ ?>
60
64
 
61
- ?>
65
+ <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
62
66
 
63
- <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
64
-
65
- <?php
67
+ <?php
66
-
67
- $numlist++;
68
68
 
69
69
  endwhile;
70
70
 
@@ -72,11 +72,11 @@
72
72
 
73
73
 
74
74
 
75
- /* ページネーションの表示 */
75
+ // ページネーションの表示です
76
76
 
77
77
  if ( function_exists( 'pagination' ) ) :
78
78
 
79
- pagination( $the_query->max_num_pages, $paged ); //$wp_query ではなく $the_query ないことに注意!
79
+ pagination( $the_query->max_num_pages, $paged );
80
80
 
81
81
  endif;
82
82
 
@@ -86,131 +86,7 @@
86
86
 
87
87
  </ul>
88
88
 
89
- <?php
89
+ <?php endif;
90
-
91
- }
92
-
93
-
94
-
95
-
96
-
97
- /**
98
-
99
- * ★ページネーションの登録
100
-
101
- * $paged : 現在のページ
102
-
103
- * $pages : 全ページ数
104
-
105
- * $range : 左右に何ページ表示するか
106
-
107
- * $show_only : 1ページしかない時に表示するかどうか
108
-
109
- */
110
-
111
- function pagination( $pages, $paged, $range = 2, $show_only = false ) {
112
-
113
-
114
-
115
- $pages = ( int ) $pages; //float型で渡ってくるので明示的に int型 へ
116
-
117
- $paged = $paged ?: 1; //get_query_var('paged')をそのまま投げても大丈夫なように
118
-
119
-
120
-
121
- //表示テキスト
122
-
123
- $text_first = "« 最初へ";
124
-
125
- $text_before = "‹ 前へ";
126
-
127
- $text_next = "次へ ›";
128
-
129
- $text_last = "最後へ »";
130
-
131
-
132
-
133
- if ( $show_only && $pages === 1 ) {
134
-
135
- // 1ページのみで表示設定が true の時
136
-
137
- echo '<div class="pagination"><span class="current pager">1</span></div>';
138
-
139
- return;
140
-
141
- }
142
-
143
-
144
-
145
- if ( $pages === 1 ) return; // 1ページのみで表示設定もない場合
146
-
147
-
148
-
149
- if ( 1 !== $pages ) {
150
-
151
- //2ページ以上の時
152
-
153
- echo '<div class="pagination"><span class="page_num">Page ', $paged ,' of ', $pages ,'</span>';
154
-
155
- if ( $paged > $range + 1 ) {
156
-
157
- // 「最初へ」 の表示
158
-
159
- echo '<a href="', get_pagenum_link(1) ,'" class="first">', $text_first ,'</a>';
160
-
161
- }
162
-
163
- if ( $paged > 1 ) {
164
-
165
- // 「前へ」 の表示
166
-
167
- echo '<a href="', get_pagenum_link( $paged - 1 ) ,'" class="prev">', $text_before ,'</a>';
168
-
169
- }
170
-
171
- for ( $i = 1; $i <= $pages; $i++ ) {
172
-
173
-
174
-
175
- if ( $i <= $paged + $range && $i >= $paged - $range ) {
176
-
177
- // $paged +- $range 以内であればページ番号を出力
178
-
179
- if ( $paged === $i ) {
180
-
181
- echo '<span class="current pager">', $i ,'</span>';
182
-
183
- } else {
184
-
185
- echo '<a href="', get_pagenum_link( $i ) ,'" class="pager">', $i ,'</a>';
186
-
187
- }
188
-
189
- }
190
-
191
-
192
-
193
- }
194
-
195
- if ( $paged < $pages ) {
196
-
197
- // 「次へ」 の表示
198
-
199
- echo '<a href="', get_pagenum_link( $paged + 1 ) ,'" class="next">', $text_next ,'</a>';
200
-
201
- }
202
-
203
- if ( $paged + $range < $pages ) {
204
-
205
- // 「最後へ」 の表示
206
-
207
- echo '<a href="', get_pagenum_link( $pages ) ,'" class="last">', $text_last ,'</a>';
208
-
209
- }
210
-
211
- echo '</div>';
212
-
213
- }
214
90
 
215
91
  }
216
92