0

ユーザーが購入したすべての製品 (デジタル アクセス パス) を一覧表示するループを次に示します。各製品の横に、Wordpress の記事の注目の画像を表示したいと考えています。ただし、DAP 製品と Wordpress の投稿の間には確固たる関係はありません。したがって、これに対する私の回避策は、DAP 製品が WP Post と同じ名前/タイトルであることを確認することです。私の問題は、これまでのコード (ハッシュ タグ間) を使用すると、基本的にループ内の各 DAP 製品のクエリを実行するため、X 量の DAP 製品の重複を吐き出すことです。

したがって、3 つの DAP 製品があり、そのうちの 2 つが WP の投稿と一致するタイトルを持っている場合、結果は次のようになります...

16521652

それが理にかなっていることを願っています。任意の支援に感謝します。

global $wpdb;

//loop over each product from the list
foreach ($userProducts as $userProduct) {
    if($productid != "ALL") {
        $productIdArray = explode(",",$productid);

        //if( $userProduct->getProduct_id() != $productid ) {
        if( !in_array($userProduct->getProduct_id(), $productIdArray) ) {
            continue;
        }
    }

    $product = Dap_Product::loadProduct($userProduct->getProduct_id());

    $expired = false;
    if($user->hasAccessTo($product->getId()) === false) {
        $expired = true;
    }



    //##########################################################################

    /*1.Get post ID by post title if you know the title or the title variable*/

    $postid = $wpdb->get_var( "SELECT ID FROM $wpdb->posts WHERE post_title = '" . $product->getName() . "'" );
    $postname = $wpdb->get_var( "SELECT post_title FROM $wpdb->posts WHERE post_title = '" . $product->getName() . "'" );

    if ($product->getName() == $postname):
    echo $postid;
    endif;

    /*2.use get_post($post_id) to get whatever you want to echo*/
    $getpost= get_post($postid);
    $postcontent= $getpost->post_content;
    echo $postcontent;

    //##########################################################################

    $content .= '</div>';
    $content .= '<br/><br/>';
} //end foreach

return $content;
4

1 に答える 1