我是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列表,我如何获得帖子?
答案 0 :(得分:1)
如果您只想检查此函数返回的内容,只需在执行查询后包含此行:
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”] => string(2)“12”[“post_date”] => string(19)“2012-07-27 08:53:22”[“post_date_gmt”] => string(19)“2012-07-27 08:53:22”[“post_content”] => string(356)“Text”[“post_title”] => string(58)“Продам2-кквартируРусскоеПоле”[“post_excerpt”] => string(0)“”[“post_status”] => string(7)“publish”[“comment_status”] => string(4)“open”[“ping_status”] => string(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);