0

我是 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= results of function");

如何通过调用此函数连接结果?我不明白如何将参数传递给函数。

谢谢!

更新:据我了解,get_posts 不允许我传递 ID 列表,我只能传递一个。如果我有 ID 列表,如何获取帖子?

4

1 回答 1

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"]=> 字符串(19) "2012-07-27 08:53:22" ["post_date_gmt"]=> 字符串(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”]=>字符串(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);
于 2012-07-31T19:26:54.160 回答