回答編集履歴

8

追記

2018/08/08 10:00

投稿

CHERRY
CHERRY

スコア25171

test CHANGED
@@ -329,3 +329,31 @@
329
329
  " );
330
330
 
331
331
  ```
332
+
333
+
334
+
335
+ ----
336
+
337
+ (2018-08-08 18:55追記)
338
+
339
+ コメント欄では、インデントがつかないので、こちらにも書いておきます。
340
+
341
+
342
+
343
+ ```
344
+
345
+ $sumuser = 0;
346
+
347
+ foreach ( $likers as $liker ) {
348
+
349
+ if ( $UID == $liker->user_id ){
350
+
351
+ $sumuser = $liker->SumUser;
352
+
353
+ }
354
+
355
+ }
356
+
357
+ echo $sumuser;
358
+
359
+ ```

7

修正

2018/08/08 10:00

投稿

CHERRY
CHERRY

スコア25171

test CHANGED
@@ -280,11 +280,11 @@
280
280
 
281
281
  SELECT P.post_author AS user_id, SUM(T.CountUser) AS SumUser
282
282
 
283
- FROM stc02_posts AS P, (
283
+ FROM $wpdb->posts AS P, (
284
284
 
285
285
  SELECT user_id, count(user_id) AS CountUser, post_id as post_id
286
286
 
287
- FROM `stc02_ulike`
287
+ FROM `".$wpdb->prefix."ulike`
288
288
 
289
289
  WHERE DATE_FORMAT(date_time, '%Y%m') = DATE_FORMAT(NOW(), '%Y%m')
290
290
 
@@ -294,7 +294,7 @@
294
294
 
295
295
  SELECT user_id, count(user_id) AS CountUser, activity_id as post_id
296
296
 
297
- FROM `stc02_ulike_activities`
297
+ FROM `".$wpdb->prefix."ulike_activities`
298
298
 
299
299
  WHERE DATE_FORMAT(date_time, '%Y%m') = DATE_FORMAT(NOW(), '%Y%m')
300
300
 
@@ -304,7 +304,7 @@
304
304
 
305
305
  SELECT user_id, count(user_id) AS CountUser, comment_id as post_id
306
306
 
307
- FROM `stc02_ulike_comments`
307
+ FROM `".$wpdb->prefix."ulike_comments`
308
308
 
309
309
  WHERE DATE_FORMAT(date_time, '%Y%m') = DATE_FORMAT(NOW(), '%Y%m')
310
310
 
@@ -314,7 +314,7 @@
314
314
 
315
315
  SELECT user_id, count(user_id) AS CountUser, topic_id as post_id
316
316
 
317
- FROM `stc02_ulike_forums`
317
+ FROM `".$wpdb->prefix."ulike_forums`
318
318
 
319
319
  WHERE DATE_FORMAT(date_time, '%Y%m') = DATE_FORMAT(NOW(), '%Y%m')
320
320
 

6

SQL追記

2018/08/07 23:06

投稿

CHERRY
CHERRY

スコア25171

test CHANGED
@@ -265,3 +265,67 @@
265
265
  固定ページを保存・公開して、表示する
266
266
 
267
267
  ![イメージ説明](5af58a43dfafcd1a6de5fa4556d95955.png)
268
+
269
+
270
+
271
+ ----
272
+
273
+ page-test1.php の $likers = $wpdb->get_results( .... ); の行を下記のようにすれば、今月分(1日〜月末)が集計できます。
274
+
275
+
276
+
277
+ ```PHP
278
+
279
+ $likers = $wpdb->get_results( "
280
+
281
+ SELECT P.post_author AS user_id, SUM(T.CountUser) AS SumUser
282
+
283
+ FROM stc02_posts AS P, (
284
+
285
+ SELECT user_id, count(user_id) AS CountUser, post_id as post_id
286
+
287
+ FROM `stc02_ulike`
288
+
289
+ WHERE DATE_FORMAT(date_time, '%Y%m') = DATE_FORMAT(NOW(), '%Y%m')
290
+
291
+ GROUP BY user_id, post_id
292
+
293
+ UNION ALL
294
+
295
+ SELECT user_id, count(user_id) AS CountUser, activity_id as post_id
296
+
297
+ FROM `stc02_ulike_activities`
298
+
299
+ WHERE DATE_FORMAT(date_time, '%Y%m') = DATE_FORMAT(NOW(), '%Y%m')
300
+
301
+ GROUP BY user_id, activity_id
302
+
303
+ UNION ALL
304
+
305
+ SELECT user_id, count(user_id) AS CountUser, comment_id as post_id
306
+
307
+ FROM `stc02_ulike_comments`
308
+
309
+ WHERE DATE_FORMAT(date_time, '%Y%m') = DATE_FORMAT(NOW(), '%Y%m')
310
+
311
+ GROUP BY user_id, comment_id
312
+
313
+ UNION ALL
314
+
315
+ SELECT user_id, count(user_id) AS CountUser, topic_id as post_id
316
+
317
+ FROM `stc02_ulike_forums`
318
+
319
+ WHERE DATE_FORMAT(date_time, '%Y%m') = DATE_FORMAT(NOW(), '%Y%m')
320
+
321
+ GROUP BY user_id, topic_id
322
+
323
+ ) AS T
324
+
325
+ WHERE P.ID = T.post_id
326
+
327
+ GROUP BY P.post_author;
328
+
329
+ " );
330
+
331
+ ```

5

SQLを追加

2018/08/07 12:43

投稿

CHERRY
CHERRY

スコア25171

test CHANGED
File without changes

4

追記

2018/08/07 12:40

投稿

CHERRY
CHERRY

スコア25171

test CHANGED
@@ -167,3 +167,101 @@
167
167
  " );
168
168
 
169
169
  ```
170
+
171
+
172
+
173
+ ----
174
+
175
+ (2018-08-06 11:30 追記)
176
+
177
+
178
+
179
+ テスト環境に新しく WordPress をインストールして、試してみました。テンプレートは、twentyfifteen です。
180
+
181
+ 下記の通り、こちらでは、問題なく表示されます。
182
+
183
+
184
+
185
+ page-test1.php を下記の内容で作る。
186
+
187
+ ```PHP
188
+
189
+ <?php
190
+
191
+ /**
192
+
193
+ * Template Name: page-test1
194
+
195
+ *
196
+
197
+ */
198
+
199
+ get_header(); ?>
200
+
201
+
202
+
203
+ <div id="primary" class="content-area">
204
+
205
+ <main id="main" class="site-main" role="main">
206
+
207
+ <div id="cherrysan">
208
+
209
+ <?php
210
+
211
+
212
+
213
+ global $wpdb;
214
+
215
+ $likers = $wpdb->get_results( "
216
+
217
+ SELECT p.post_author AS user_id, m.meta_value AS SumUser
218
+
219
+ FROM $wpdb->posts AS p, $wpdb->postmeta AS m
220
+
221
+ WHERE p.ID = m.post_ID
222
+
223
+ AND p.post_status = 'publish'
224
+
225
+ AND m.meta_key = '_liked'
226
+
227
+ GROUP BY p.post_author
228
+
229
+ " );
230
+
231
+
232
+
233
+ foreach ( $likers as $liker ) {
234
+
235
+ if ( 1 == $liker->user_id ){
236
+
237
+ echo "<p>ユーザー ID : ". $liker->user_id ."は、". $liker->SumUser ."件いいねされています。</p>";
238
+
239
+ }
240
+
241
+ }
242
+
243
+
244
+
245
+ ?>
246
+
247
+ </div>
248
+
249
+ </main><!-- .site-main -->
250
+
251
+ </div><!-- .content-area -->
252
+
253
+ <?php get_footer(); ?>
254
+
255
+ ```
256
+
257
+
258
+
259
+ 固定ページの編集画面で、個別テンプレートを選んで固定ページを作成。
260
+
261
+ ![個別テンプレートを選ぶ](48570f4ffec3acab8927d85d81d7d92e.png)
262
+
263
+
264
+
265
+ 固定ページを保存・公開して、表示する
266
+
267
+ ![イメージ説明](5af58a43dfafcd1a6de5fa4556d95955.png)

3

SQLを修正

2018/08/06 02:41

投稿

CHERRY
CHERRY

スコア25171

test CHANGED
@@ -138,7 +138,7 @@
138
138
 
139
139
  ----
140
140
 
141
- (追記 2018/08/04 14:16)
141
+ (追記 2018/08/04 14:16 / 修正 2018/08/06 11:00)
142
142
 
143
143
 
144
144
 
@@ -152,7 +152,7 @@
152
152
 
153
153
  $likers = $wpdb->get_results( "
154
154
 
155
- SELECT p.post_author, m.meta_value
155
+ SELECT p.post_author AS user_id, m.meta_value AS SumUser
156
156
 
157
157
  FROM $wpdb->posts AS p, $wpdb->postmeta AS m
158
158
 
@@ -164,8 +164,6 @@
164
164
 
165
165
  GROUP BY p.post_author
166
166
 
167
- ORDER BY CAST( m.meta_value AS SIGNED ) DESC
168
-
169
167
  " );
170
168
 
171
169
  ```

2

追記

2018/08/06 02:04

投稿

CHERRY
CHERRY

スコア25171

test CHANGED
@@ -133,3 +133,39 @@
133
133
  ユーザーID の部分は、WordPress のユーザーID(数字です) で置き換えてください。 ユーザーID は、1 が WordPress をインストールした際の初期Admin です。
134
134
 
135
135
  ユーザーID は、ユーザーID の編集画面の URL 等で使われていますので、確認可能です。 ( 例: http://example.com/wp-admin/user-edit.php?user_id=3&wp_http_referer=%2Fwp-admin%2Fusers.php )
136
+
137
+
138
+
139
+ ----
140
+
141
+ (追記 2018/08/04 14:16)
142
+
143
+
144
+
145
+ つらつらと眺めていて、postmeta に '_liked' が、追加されていたことに気がついたので、posts と postmeta のデータベースだけで集計できそうです。
146
+
147
+
148
+
149
+ ```
150
+
151
+ global $wpdb;
152
+
153
+ $likers = $wpdb->get_results( "
154
+
155
+ SELECT p.post_author, m.meta_value
156
+
157
+ FROM $wpdb->posts AS p, $wpdb->postmeta AS m
158
+
159
+ WHERE p.ID = m.post_ID
160
+
161
+ AND p.post_status = 'publish'
162
+
163
+ AND m.meta_key = '_liked'
164
+
165
+ GROUP BY p.post_author
166
+
167
+ ORDER BY CAST( m.meta_value AS SIGNED ) DESC
168
+
169
+ " );
170
+
171
+ ```

1

追記。

2018/08/04 05:22

投稿

CHERRY
CHERRY

スコア25171

test CHANGED
@@ -19,3 +19,117 @@
19
19
 
20
20
 
21
21
  ソースコードをよむと [class-wp-ulike-stats.php](https://github.com/Alimir/wp-ulike/blob/master/admin/classes/class-wp-ulike-stats.php) の [get_top_likers()](https://github.com/Alimir/wp-ulike/blob/master/admin/classes/class-wp-ulike-stats.php#L278) の部分で集計していますので、この関数を呼び出して、$results を取得・参照することになると思います。
22
+
23
+
24
+
25
+ ----
26
+
27
+
28
+
29
+ WP ULike プラグインが、インストールされていたら、
30
+
31
+
32
+
33
+ ```PHP
34
+
35
+ require WP_PLUGIN_DIR . "/wp-ulike/admin/classes/class-wp-ulike-stats.php";
36
+
37
+ $my_ulike_stats = new wp_ulike_stats();
38
+
39
+ $likers = $my_ulike_stats->get_top_likers();
40
+
41
+ ```
42
+
43
+
44
+
45
+ で、 配列 $likers に 以下のようなデータが入ります。
46
+
47
+
48
+
49
+ ```PHP
50
+
51
+ array (
52
+
53
+ 0 =>
54
+
55
+ stdClass::__set_state(array(
56
+
57
+ 'user_id' => '1',
58
+
59
+ 'SumUser' => '2',
60
+
61
+ 'ip' => '192.168.1.100',
62
+
63
+ )),
64
+
65
+ 1 =>
66
+
67
+ stdClass::__set_state(array(
68
+
69
+ 'user_id' => '2',
70
+
71
+ 'SumUser' => '5',
72
+
73
+ 'ip' => '192.168.1.101',
74
+
75
+ )),
76
+
77
+ 2 =>
78
+
79
+ stdClass::__set_state(array(
80
+
81
+ 'user_id' => '1037204866',
82
+
83
+ 'SumUser' => '1',
84
+
85
+ 'ip' => '192.168.1.102',
86
+
87
+ )),
88
+
89
+ )
90
+
91
+ ```
92
+
93
+
94
+
95
+ この配列からデータを取り出すのは、foreach を使って、
96
+
97
+
98
+
99
+ ```PHP
100
+
101
+ foreach ( $likers as $liker ) {
102
+
103
+ echo "<p>ユーザー ID : ". $liker->user_id ."は、". $liker->SumUser ."件いいねしています。</p>";
104
+
105
+ }
106
+
107
+ ```
108
+
109
+ のようにすると順番に表示されます。
110
+
111
+
112
+
113
+ 特定のユーザーのみ表示したいのであれば、foreach の中で、 if で条件判断して条件に一致する場合のみ表示するようにします。
114
+
115
+
116
+
117
+ ```PHP
118
+
119
+ foreach ( $likers as $liker ) {
120
+
121
+ if ( ユーザーID == $liker->user_id ){
122
+
123
+ echo "<p>ユーザー ID : ". $liker->user_id ."は、". $liker->SumUser ."件いいねしています。</p>";
124
+
125
+ }
126
+
127
+ }
128
+
129
+ ```
130
+
131
+
132
+
133
+ ユーザーID の部分は、WordPress のユーザーID(数字です) で置き換えてください。 ユーザーID は、1 が WordPress をインストールした際の初期Admin です。
134
+
135
+ ユーザーID は、ユーザーID の編集画面の URL 等で使われていますので、確認可能です。 ( 例: http://example.com/wp-admin/user-edit.php?user_id=3&wp_http_referer=%2Fwp-admin%2Fusers.php )