質問編集履歴

4

うまくいったソースコードを掲載

2016/07/01 00:53

投稿

worldrun
worldrun

スコア19

test CHANGED
File without changes
test CHANGED
@@ -231,3 +231,29 @@
231
231
  記事ページは1と3の両方が表示されます。
232
232
 
233
233
  トップページでは1だけが表示されます。
234
+
235
+
236
+
237
+ どうやらうまくいったソースがこちらです
238
+
239
+ ```php
240
+
241
+ if( is_category() ) {
242
+
243
+ // カテゴリアーカイブ
244
+
245
+ $cat_id = get_category( get_query_var( 'cat' ) )->term_id;
246
+
247
+ } else if (is_single() ) {
248
+
249
+ // 投稿ページ
250
+
251
+ $cat_id = wp_get_post_categories( $wp_query->post->ID )[ 0 ];
252
+
253
+ }else{
254
+
255
+ $cat_id = 199;
256
+
257
+ }
258
+
259
+ ```

3

コメントソースを追加

2016/07/01 00:53

投稿

worldrun
worldrun

スコア19

test CHANGED
File without changes
test CHANGED
@@ -111,3 +111,123 @@
111
111
  記事ページ=1(全てのカテゴリの記事が一覧表示される)
112
112
 
113
113
  こんな感じです
114
+
115
+
116
+
117
+ コメントのコードです(sidebar.php)
118
+
119
+ ```php
120
+
121
+ <!-- カテゴリ新着コメント -->
122
+
123
+ <div class="box">
124
+
125
+
126
+
127
+ <h2 class="box-header main-color-font">コメント一覧</h2>
128
+
129
+ <?php
130
+
131
+ // html プレースホルダ―
132
+
133
+ $html = '<li><a href="%1$s">%2$s</a></li>';
134
+
135
+ //表示するコメント件数
136
+
137
+ $show_comments = 2;
138
+
139
+
140
+
141
+ if( is_category() ) {
142
+
143
+ // カテゴリアーカイブ
144
+
145
+ $page_cat = get_category( get_query_var( 'cat' ) )->term_id;
146
+
147
+ } else if (is_single() ) {
148
+
149
+ // 投稿ページ
150
+
151
+ $page_cat = wp_get_post_categories( $wp_query->post->ID )[ 0 ]->term_id;
152
+
153
+ }else{
154
+
155
+ $page_cat = 3;
156
+
157
+ }
158
+
159
+ //コメント分の長さ
160
+
161
+ $comment_length = 60;
162
+
163
+
164
+
165
+ //コメントの取得条件
166
+
167
+ $args = array(
168
+
169
+ 'status' => 'approve',
170
+
171
+ 'type' => 'comment',
172
+
173
+ 'post_status' => 'publish',
174
+
175
+ 'number' => 50, //コメント抽出件数
176
+
177
+ );
178
+
179
+ //コメント情報の取得
180
+
181
+ $comments = get_comments( $args );
182
+
183
+ $i = 0;
184
+
185
+
186
+
187
+ foreach ( $comments as $key => $comment ) {
188
+
189
+ //コメントとリンク
190
+
191
+ $id = absint( $comment->comment_post_ID );
192
+
193
+ $url = esc_url( get_permalink( $id ) );
194
+
195
+ $comment = wp_html_excerpt( $comment->comment_content, $comment_length, '...' );
196
+
197
+
198
+
199
+ if ( has_category( $page_cat, $id ) ) {
200
+
201
+ // 表示
202
+
203
+ printf( $html, $url, $comment );
204
+
205
+ $i++;
206
+
207
+ }
208
+
209
+ //表示するコメント件数に達したら、ループを抜ける
210
+
211
+ if ( $i >= $show_comments ) {
212
+
213
+ break;
214
+
215
+ }
216
+
217
+ }
218
+
219
+ ?>
220
+
221
+ </div>
222
+
223
+ ```
224
+
225
+
226
+
227
+ カテゴリは1と3の2つしかないです。
228
+
229
+ カテゴリページは問題なく1と3それぞれ表示されます。
230
+
231
+ 記事ページは1と3の両方が表示されます。
232
+
233
+ トップページでは1だけが表示されます。

2

試しているコードを追記

2016/06/30 12:17

投稿

worldrun
worldrun

スコア19

test CHANGED
File without changes
test CHANGED
@@ -83,3 +83,31 @@
83
83
 
84
84
 
85
85
  よろしくお願いいたします。
86
+
87
+
88
+
89
+ 追記:今試しているコードです
90
+
91
+ ```php
92
+
93
+ $cat = get_the_category();
94
+
95
+ $cat = $cat[0];
96
+
97
+ $chekname= $cat->cat_name;
98
+
99
+ $chekid = $cat->cat_ID;
100
+
101
+ echo ' chekname='.$chekname; echo ' chekid='.$chekid;
102
+
103
+ ```
104
+
105
+ 結果は
106
+
107
+ トップページ=1(カテゴリ1の一覧が表示される)
108
+
109
+ カテゴリページ=3(正常、ID=1のカテゴリは1)
110
+
111
+ 記事ページ=1(全てのカテゴリの記事が一覧表示される)
112
+
113
+ こんな感じです

1

進行状況を報告

2016/06/30 10:25

投稿

worldrun
worldrun

スコア19

test CHANGED
File without changes
test CHANGED
@@ -46,4 +46,40 @@
46
46
 
47
47
 
48
48
 
49
+ ※色々やっていたのですが、現在のカテゴリIDの取得も困難な状態です。
50
+
51
+ カテゴリページ→取得出来ました。
52
+
53
+ トップページ→1がかえってきます。
54
+
55
+ 記事ページ→0しかかえってきません。
56
+
57
+
58
+
59
+ 使ったコードは
60
+
61
+ ```php
62
+
63
+ $cat = get_query_var('cat');
64
+
65
+ $posts = get_posts("order=asc&category=$cat&numberposts=10");
66
+
67
+
68
+
69
+ $categoryname = single_cat_title('',false);
70
+
71
+ $categoryid = get_cat_ID($categoryname);
72
+
73
+
74
+
75
+ <?php $cat = get_the_category(); echo $cat[0]->name; ?>
76
+
77
+ ```
78
+
79
+ この3種です。どれも記事ページで正しい結果を返してくれませんでした。
80
+
81
+ ちなみにsidebar.phpに記述しています。
82
+
83
+
84
+
49
85
  よろしくお願いいたします。