查询WordPress数据库以获取包含替换信息的数据

时间:2017-08-09 作者:3000

抱歉交叉发布:我在StackOverflow上发布了一个类似的问题,但我没有得到任何关注(当然是我的错)。

我需要查询Wordpress数据库。

第一个表是wp_posts: 从这个表中,我需要检索ID 以及post_content 其中post\\u标题为“A”, “B”“C”. 这当然相当容易:

SELECT ID,post_content FROM `wp_posts` 
WHERE post_title IN ("A","B","C") and post_type = "plugin_is_writing_this_record" 
post_type 这里是必要的,因为只有特定的Wordpress插件使用该post\\u类型写入记录。

问题是,同一个插件(用于发送表单的插件)替换为对我来说至关重要的0 a信息:post_author, 那在wp_posts 通常是the id of the user who created the post, is NOT the id of the user who posted the form, but the id of the user who created the post where the form is located. 我需要检索发布表单的用户的id。

使用ID 中的职位wp_posts, 我可以得到email 表中用户的wp_postmeta.

如果以这种方式查询最后一个表:

SELECT * FROMwp\\U邮差WHERE post_id = 277125 (*)

您可以通过这种方式获取数据(我稍微减少了数据):

meta_id | post_id | meta_key            | meta_value
----------------------------------------------------------
3       | 277125  | _from_email         | [email protected]
4       | 277125  | _field_your-surname | Surname
5       | 277125  | other_meta_key      | otherdata
6       | 277125  | ...                 | ...
在这一点上,我知道_from_email meta值与发布表单的用户的邮件相关(我需要从这个表中检索其他meta\\u键,但这个键对查询和这个问题起作用)。

包含ID 我需要,用户的电子邮件当然是wp_users, 第三张桌子。

在一次对三个表进行查询时,是否可以检索到所需的数据?我尝试了一些连接,但无法使它们正常工作。非常感谢您的帮助。

1 个回复
SO网友:gdaniel

这个问题对我有用。我必须反转它,从用户开始,然后匹配帖子ID。你需要替换wp\\u帖子的值。当然是ID。

SELECT wp_users.ID
FROM wp_users
LEFT JOIN wp_postmeta ON wp_postmeta.meta_value = wp_users.user_email AND wp_postmeta.meta_key = \'_from_email\' 
LEFT JOIN wp_posts ON wp_posts.ID = wp_postmeta.post_id AND wp_posts.ID = 2

结束

相关推荐

我可以修改WP_Query实例或通过修改克隆它吗?

假设我创建了一个all_movies 返回WP_Query 实例,其中包含自定义类型的所有帖子movie.$movies = all_movies(); // returns WP_Query instance 我想修改WP_Query 对象仅显示某个作者的电影,可能使用如下代码:$movies = all_movies(); $movies->filter([\'author\' => 14]); // not real code 或者我可以创建一个新的WP_Qu