[英]double MySQL query in one query in PHP wordpress
我正在使用wordpress網站和自定義PHP srcipt,它將與CRON一起運行以更新帖子。
我怎么看:
我是怎么做到的
$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
你可以像INNER JOIN一樣使用
SELECT post_title, id, meta_key
FROM $wpdb->posts as post
INNER JOIN $wpdb->postmeta as meta ON post.id=meta.post_id
WHERE post_status = 'publish' and meta.meta_key='src_link'
AND post_type = 'post'
當您使用全局$wpdb
我們可以假設您的PHP 在 WP框架內。 因此,您不需要自定義SQL查詢 - 您可以使用標准WP_Query執行此操作 :
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_query' => array(
array(
'key' => 'src_link',
'compare' => 'EXISTS',
),
),
);
$postsQuery = get_posts($args);
foreach ($postsQuery as $myPost) {
// We're using $myPost rather than $post as the latter is a global var used in The Loop
echo '<pre>' . print_r($myPost, true) . '</pre>';
update_post_meta($myPost->ID, 'updated_link', $myCustomValue);
}
在這里,我們要提取的所有 post
型崗位的狀態為publish
和使用meta_query
在哪里可以找到職位src_link
存在。
嘗試這個:
SELECT post_title, id, meta_key
FROM $wpdb->posts as post
INNER JOIN $wpdb->postmeta as meta ON post.id=meta.post_id and meta.meta_key='src_link'
WHERE post_status = 'publish'
AND post_type = 'post'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.