[英]How to get posts with list of ID from SQL function result?
我是PHP的新手,需要您的建议。 谢谢你的帮助!
我正在使用PHP,并且我只需要获取带有图像附件的帖子。 我写了sql函数:
global $wpdb;
$postsID = $wpdb->get_results
("
SELECT ID
FROM $wpdb->posts
WHERE
post_status = 'publish'
AND
ID IN (
SELECT DISTINCT post_parent
FROM $wpdb->posts
WHERE
post_parent > 0
AND
post_type = 'attachment'
AND
post_mime_type IN ('image/jpeg', 'image/png')
)
ORDER BY post_date DESC
LIMIT 0 , 5
");
现在,我想使用此函数的结果来处理get_posts(“ p =函数的结果”);
如何通过调用此函数连接结果? 我不明白如何将参数传递给函数。
谢谢!
更新:据我了解,get_posts不允许我传递ID列表,我只能传递一个ID列表。 如果我有ID列表,该如何获得帖子?
如果您只想检查此函数返回的内容,只需在执行查询后添加以下行即可:
var_dump($postsID);
如果您想对数据做一些事情 ,可以用很多方法来完成,但这取决于您要做什么。 这个论坛中有太多选择。
更新:根据下面评论中的对话,您似乎想要将结果键( $postsID
)传递给$ wpdb-> get_posts()函数。
如果get_posts()
仅将唯一ID作为参数,则必须执行以下操作:
// I'm assuming a simple key=>value pair in your array. Modify your code as needed
foreach($postsID as $id) {
$result = $wpdb->get_posts($id);
// code that will do "something" with $result
}
更新2:由于$postsID
看起来像这样:array(5){[0] => object(stdClass)#4015(23){[“ ID”] => string(3)“ 779” [“ post_author”] = >字符串(2)“ 12” [“ post_date”] =>字符串(19)“ 2012-07-27 08:53:22” [“ post_date_gmt”] =>字符串(19)“ 2012-07-27 08: 53:22“ [” post_content“] =>字符串(356)”文本“ [” post_title“] =>字符串(58)”Продам2-кквартируРусскоеПоле“ [”“ post_excerpt”] =>字符串(0)“ “ [[” post_status“] =>字符串(7)”发布“ [” comment_status“] =>字符串(4)” open“ [” ping_status“] =>字符串(4)” open“ [” post_password“] => string(0)“” [“ post_name”] => string(162)“%d0%bf%d1%80%
您将需要从每个对象中获取ID并将其插入到临时数组中,并将其传递给get_posts()
:
// $args = array( 'post__in' => array(779,772,768,761,716) );
$tempArr = array();
foreach ($postsID as $obj) {
$tempArr[] = $obj->id;
}
$args = array('post__in' => $tempArr);
$result = $wpdb->get_posts($args);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.