回答編集履歴
8
追記
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
修正
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
|
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 `
|
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 `
|
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 `
|
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 `
|
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追記
test
CHANGED
@@ -265,3 +265,67 @@
|
|
265
265
|
固定ページを保存・公開して、表示する
|
266
266
|
|
267
267
|

|
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を追加
test
CHANGED
File without changes
|
4
追記
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
|
+

|
262
|
+
|
263
|
+
|
264
|
+
|
265
|
+
固定ページを保存・公開して、表示する
|
266
|
+
|
267
|
+

|
3
SQLを修正
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
追記
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
追記。
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 )
|