【发布时间】:2018-11-19 08:47:49
【问题描述】:
我正在使用一个 wordpress 网站和一个自定义 PHP 脚本,它将与 CRON 一起运行以更新帖子。
我是怎么看的:
- 我想查询数据库中的posts表并获取所有已发布的帖子。
- 我需要对表进行一次查询 - postmeta - 从我的自定义字段中获取值(我需要解析一个链接)
我是如何做到的:
$pages = $wpdb->get_results(
"
SELECT post_title, id
FROM $wpdb->posts
WHERE post_status = 'publish'
AND post_type = 'post'
"
);
if( $pages ) {
foreach ( $pages as $page ) {
echo $page->post_title . " - ";
echo $page->id . "<br>";
}
}
所以问题是:问题出在 MySQL 查询上。我需要这个响应:array[0] -> ID(来自帖子)、post_title(来自帖子)、meta_value(来自 postmeta,其中 meta_key = 'src_link')。我怎样才能得到这个回复?
我试过了 - 但 id 不起作用:
SELECT post_title, id, meta_value
FROM $wpdb->posts as post
INNER JOIN $wpdb->postmeta as meta ON post.id=meta.post_id
WHERE post.post_status = 'publish'
AND post.post_type = 'post'
AND meta.meta_key='src_link'
问题是当我添加这一行时 -
AND meta.meta_key='src_link'
它什么也没找到。如果我删除这一行。它找到了我需要的所有内容,但有重复项(我只需要 Meta_key = 'src_link' 的行。
表格:
帖子:
-------------------
id | post_title
------------------
1 | new title here
------------------
2 | again a title here
postmeta:
meta_id | post_id | meta_key | meta_value
---------------------------------------------
1 | 2 | src_link | here_is_my_link
---------------------------------------------
2 | 1 | empty | not_my_link
【问题讨论】:
-
请添加两个表的架构和示例数据。
-
添加示例数据