ログイン
始める

Easy Digital Downloads ドキュメント

Easy Digital Downloads のドキュメント、参考資料、チュートリアル

データベースでの商品クエリ

Easy Digital Downloads を中心に構築する過程で、製品データをデータベースにクエリする必要が生じる場合があります。このドキュメントでは、その適切な方法をいくつか例を挙げて紹介します。

単一の製品を取得する

単一の製品に関する情報を取得する最良の方法は、EDD_Download クラスを使用することです。これは download_id を受け取り、ダウンロードに関する情報を持つオブジェクトを返します。例:

$download = new EDD_Download( 109 );

これは次のようなオブジェクトを返します:

EDD_Download Object
(
    [ID] => 109
    [price:EDD_Download:private] => 
    [prices:EDD_Download:private] => 
    [files:EDD_Download:private] => 
    [file_download_limit:EDD_Download:private] => 
    [type:EDD_Download:private] => 
    [bundled_downloads:EDD_Download:private] => 
    [sales:EDD_Download:private] => 
    [earnings:EDD_Download:private] => 
    [notes:EDD_Download:private] => 
    [sku:EDD_Download:private] => 
    [button_behavior:EDD_Download:private] => 
    [post_author] => 2
    [post_date] => 2016-03-22 13:30:29
    [post_date_gmt] => 2016-03-22 13:30:29
    [post_content] => Buy my mp3!
    [post_title] => My MP3
    [post_excerpt] => 
    [post_status] => publish
    [comment_status] => closed
    [ping_status] => closed
    [post_password] => 
    [post_name] => my-mp3
    [to_ping] => 
    [pinged] => 
    [post_modified] => 2016-03-22 13:30:29
    [post_modified_gmt] => 2016-03-22 13:30:29
    [post_content_filtered] => 
    [post_parent] => 0
    [guid] => https://edd.dev/?post_type=download&p=109
    [menu_order] => 0
    [post_mime_type] => 
    [comment_count] => 0
    [filter] => raw
    [post_type] => download
)

オブジェクトを取得したら、価格やバリエーションなどの情報を取得するために、さまざまなメソッドを実行できます。
EDD_Download の完全なドキュメントはこちら

複数の製品を取得する

ダウンロードは WordPress のカスタム投稿タイプなので、get_posts() を使用して複数のダウンロードの ID を取得できます。フィールドパラメータを適切に指定すると、get_posts は ID のみを取得するため、クエリははるかに高速になります。また、post_type には少なくとも download を指定する必要があります。例:

    $args = array(
        'fields'    => 'ids',
        'post_type' => 'download',
    );

    $downloads = get_posts( $args );

クエリを絞り込むために、get_posts() で任意のオプションを使用できます。
get_posts() の完全なドキュメントはこちら

get_posts() のドキュメントにはない追加のオプションとして no_found_rows() があります。これはページネーションに必要な一部のデータを削除しますが、クエリを劇的に高速化します。ページネーションが必要な場合は、このオプションを使用しないでください。ページネーションが不要な場合は、次のようになります。

$args = array(
	'fields'        => 'ids',
        'post_type'     => 'download',
	'no_found_rows' => true,
);

$downloads = get_posts( $args );

上記のクエリは、次のような download_ids の配列を返します:

Array
(
    [0] => 109
    [1] => 82
    [2] => 79
    [3] => 61
    [4] => 42
)

複数の製品を操作する

download_ids の配列を取得したら、配列を反復処理して EDD_Download オブジェクトを次のように作成できます:

foreach ( $downloads as $key => $download_id ) {
	$download = new EDD_Download( $download_id );
	// do whatever you wish with each object
}
この記事は役に立ちましたか?

今日から販売を開始しましょう!

50,000人以上のスマートなストアオーナーに参加して、WordPressでデジタル製品を販売する最も簡単な方法を使い始めましょう。

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]