好的,所以我在 PHP 方面有点新手,但这就是我想要实现的目标。
我想将 Wordpress 网站的主题从使用插件对帖子(WP-Ratings)进行评级的主题更改为内置评级的新主题。新主题将评级存储为元数据,我已经设法编写一个查询,从 wp_ratings 表中获取评级并将其转换为必要的元数据。我想做的是将此查询存储在当前评级插件中,以便在对帖子进行评级时存储我们迁移到新主题时所需的元数据。就像我说的那样,我是 PHP 的新手,但可以使用 SQL,所以有人可以告诉我如何对 Wordpress 数据库运行以下查询。
谢谢!
SET @post_id = 1110;
SET SESSION group_concat_max_len = 1000000;
insert into wp_postmeta (post_id,meta_key,meta_value)
SELECT
rating_postid
,'like'
,CONCAT
('a:', COUNT(rating_id), ':{',
(SELECT CONCAT( GROUP_CONCAT(meta_data_vote SEPARATOR ''), '}')
FROM
(SELECT CONCAT
('i:',
@curRow := @curRow + 1,
';a:2:{s:7:"',
'user_id',
'";s:1:"0";s:2:"ip";s:16:"',
'-127-000-000-001',
'";}'
) AS meta_data_vote
FROM wp_ratings JOIN
(SELECT @curRow := -1 AS j) r
WHERE rating_postid = @post_id
and rating_rating > 0
)AS meta_data_votes
)
) AS new_ratings_meta_data
FROM wp_ratings l
WHERE rating_postid = @post_id
and rating_rating > 0
请注意,帖子 ID 变量应该等于被评分的帖子 ID,我相信它是 PHP for Wordpress 中的 $post_id。