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 =関数の結果");で操作するために使用したいと思います。

結果をこの関数の呼び出しに接続するにはどうすればよいですか?関数にパラメーターを渡す方法がわかりません。

ありがとうございました!

更新:私が理解したように、get_postsではIDのリストを渡すことができず、1つしか渡すことができません。IDのリストがある場合、どうすれば投稿を取得できますか?

4

1 に答える 1

1

この関数によって返されるものを単純に検査したい場合は、クエリの実行後に次の行を含めるだけです。

var_dump($postsID);

データを使って何かをしたい場合、それは多くの方法で行うことができますが、それはあなたが何をしたいかによって異なります。このフォーラムに入るにはあまりにも多くのオプションがあります。

更新:以下のコメントの会話に基づいて、結果($postsID)のキーを$ wpdb-> get_posts()関数に渡したいようです。

パラメータとして一意のIDを使用する場合get_posts()は、次のようにする必要があります。

// 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:次のようになります:array(5){[0] => object( stdClass $postsID)#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);
于 2012-07-31T19:26:54.160 に答える