WP ULikeのいいね数を一覧で見る
chatGPTに作ってもらった。
素人がなんとなくで作成したためもしかしたら事故るかもしれないので、ローカルで試してから自己責任でお願いします。
WP Ulikeは管理画面の統計でトップ10件は見れるんだけれども、それより少ないものの一覧は見れない。だけどもっと一覧で見たかった。
データベースから値取り出して並び替えてる。
global $wpdb;
$table_name = $wpdb->prefix . 'ulike_meta'; // テーブル名を組み立てる
$query = $wpdb->prepare(
"SELECT * FROM {$table_name} WHERE meta_key = %s AND CAST(meta_value AS UNSIGNED) > %d ORDER BY CAST(meta_value AS UNSIGNED) DESC",
'count_total_like',
0
);
$results = $wpdb->get_results($query); // クエリを実行して結果を取得
// 結果の処理
if (!empty($results)) {
echo '<table>';
echo '<tr><th>タイトル</th><th>いいね数</th></tr>';
foreach ($results as $row) {
// データの処理
// $row には各行のデータが含まれる
$post_id = $row->item_id;
$post_title = get_the_title($post_id);
$post_link = get_permalink($post_id);
if ($post_title && $post_link) {
echo '<tr>';
echo '<td><a href="' . $post_link . '">' . $post_title . '</a></td>';
echo '<td>' . $row->meta_value . '</td>';
echo '</tr>';
}
}
echo '</table>';
} else {
// データが存在しない場合の処理
echo 'データがありません';
}
これをiinelist.phpてファイル名で作成してショートコードでPHPファイル呼び出して非公開ページに貼り付けてる。
やる気があるならば別にページを作ったりしたほうが良いかもなんだけど、基本的に子テーマ作成した上で親テーマ更新時に変更箇所差分を適用するのが手間という理由で、なるべくショートコードでPHP呼び出しをするようにしている。
chatGPT、なるべくタスクを細分化したほうがうまくいくので、自分でざっくり調べてデータベースそのまま直接開けばデータが取得できるのでは?とわかったあたりで
- データベースをWordPressで開くやり方を教えてほしい。開きたいのはulike_meta
- meta_keyがcount_total_likeのもののみに絞り込みたい
- meta_valueが0より大きいもののみにしてほしい
- item_idも取得して表示して
- このitem_idは投稿IDと紐づいてるから同じ投稿IDのもののタイトルを取得して
- 投稿タイトルにリンク貼って
- meta_valueの数が多い順番に並び替えて
- 表示を|タイトル|いいね数|のテーブル形式に変更して
- meta_valueはlongtext NULLで作られてる。一部の値がおかしいのか降順にならない。どうにか数字扱いにしてくれないか
の流れで作ってもらった。
一気にやらせるより細分化してひとつひとつどうしたらいいか確認したほうがうまくいったし、こちらとしても何をどうしたいのか明確化してひとつひとつ追加していくほうがやりやすかった。