壊れた?WP_Queryおよび投稿タイプとしての「添付」


18

ページにギャラリーが添付されています。そのページで、次のクエリを実行しています。

$events_gallery = new WP_Query( // Start a new query for our videos
array(
    'post_parent' => $post->ID, // Get data from the current post
    'post_type' => 'attachment', // Only bring back attachments
    'post_mime_type' => 'image', // Only bring back attachments that are images
    'posts_per_page' => '3', // Show us the first three results
    'status' => 'inherit', // Inherit the status of the parent post 
    'orderby' => 'rand', // Order the attachments randomly  
    )
);

かなりの数の方法を試しましたが、何らかの理由で、添付ファイルを返すことができません。ここで明らかな何かを見逃していますか?

更新*

正しい方向に向けてくれたWokに感謝します。

「post_status」ではなく「status」を使用していたことがわかりました。コーデックスは、「添付ファイル」投稿タイプのコンテキスト内の説明の例として「ステータス」を使用していました。代わりに「post_status」を参照するようにコーデックスを更新しました。正しいコードは次のとおりです。

$events_gallery = new WP_Query( // Start a new query for our videos
array(
    'post_parent' => $post->ID, // Get data from the current post
    'post_type' => 'attachment', // Only bring back attachments
    'post_mime_type' => 'image', // Only bring back attachments that are images
    'posts_per_page' => '3', // Show us the first three results
    'post_status' => 'inherit', // Attachments default to "inherit", rather than published. Use "inherit" or "any".
    'orderby' => 'rand', // Order the attachments randomly  
    )
);  

私は、「差が「継承」対「NULL」に設定されているpost_statusの間にあるのだろうか
ウォック

あなただけで私に多くの痛みを保存'post_status' => 'inherit' ありがとう!
パット

回答:


14

これらは私が使用するクエリパラメータです...結果をループするときに私のために働く

array(
                'post_parent' => $post->ID,
                'post_status' => 'inherit',
                'post_type'=> 'attachment',
                'post_mime_type' => 'image/jpeg,image/gif,image/jpg,image/png'                  
            );

13

を追加し$args、それは重要です。

'post_status' => 'any'

しない: 'post_status' => null

添付ファイルが持っていないので、これは重要でありpost_status、デフォルト値のためpost_statuspublished、何の添付ファイルを見つけることでしょう。


1行または2行のコードを投稿するのではなく、答えを説明するよう努力してください。
s_ha_dum

はい、なぜこれが機能するのですか?これを追加するまで、アーカイブページに添付ファイルを表示できませんでした。
クレア

0

それが生成するクエリを見ると、それはある種のバグのように見えます。'status' => 'inherit'は、添付ファイルのdbのエントリが文字通り 'inherit'である場合、親のステータスとして解釈されます。

別の方法は、WP_Queryの代わりにget_childrenを使用することです。


0

このコードを使用して、投稿の添付ファイルであるすべての画像を表示できました。

<?php
$args = array( 'post_type' => 'attachment', 'orderby' => 'menu_order', 'order' => 'ASC', 'post_mime_type' => 'image' ,'post_status' => null, 'post_parent' => $post->ID );
$attachments = get_posts($args);
    if ($attachments) {
    foreach ( $attachments as $attachment ) { ?>
      <img src="<?php echo wp_get_attachment_url( $attachment->ID , false ); ?>" />
<?php   }
    } ?>

また、元のフルサイズ画像のURLをエコーするには、その画像を

<?php echo wp_get_attachment_url( $attachment->ID , false ); ?>

うまくいけば、これはあなたがやろうとしていることへのアプローチです。


ページネーションはそれで機能しますか?そして、出力コードの残りを表示できますか?私は実際にページにある添付ファイルをページ分割するためにテーマギャラリーを再コーディングしている最中です。ありがとう!

4つの画像を投稿にアップロードし、これをsingle.phpのメインコンテンツエントリdivに追加すると、4つの画像タグが吐き出されます。それぞれのsrc =は、元の大きな画像サイズになります。改ページは、投稿に添付されているすべての画像を吐き出すため、これでは機能しません。
チャドフォンリンド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.