Rusak? WP_Query dan "lampiran" sebagai jenis posting


18

Saya memiliki galeri yang dilampirkan ke sebuah halaman. Di halaman itu, saya menjalankan kueri berikut:

$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  
    )
);

Saya telah mencoba beberapa cara dan, untuk beberapa alasan, saya tidak bisa mendapatkan keterikatan untuk kembali. Apakah saya melewatkan sesuatu yang jelas di sini?

Memperbarui*

Terima kasih kepada Wok karena mengarahkan saya ke arah yang benar.

Ternyata saya menggunakan "status" alih-alih "post_status". Codex telah menggunakan "status" sebagai contoh dalam penjelasan dalam konteksnya tentang tipe posting "lampiran". Saya memperbarui codex untuk referensi "post_status" sebagai gantinya. Kode yang benar adalah sebagai berikut:

$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  
    )
);  

Saya bertanya-tanya apa bedanya antara post_status yang diatur ke 'null' vs 'inherit' '
Wok

Anda baru saja menyelamatkan saya dari banyak rasa sakit dengan 'post_status' => 'inherit' Terima kasih!
Pat

Jawaban:


14

Ini adalah parameter kueri yang saya gunakan ... berfungsi untuk saya ketika saya mengulangi hasilnya

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

13

Tambahkan $args, itu penting.

'post_status' => 'any'

Tidak: 'post_status' => null

Hal ini penting karena lampiran tidak memiliki post_status, sehingga nilai default untuk post_status, published, akan menemukan lampiran.


Harap berusaha menjelaskan jawabannya, daripada hanya mengirim satu atau dua baris kode.
s_ha_dum

Ya, bagaimana ini bisa berhasil? Saya tidak bisa mendapatkan lampiran saya muncul di halaman arsip saya sampai saya menambahkan ini.
Claire

0

Melihat kueri yang dihasilkannya, tampaknya ada semacam bug. 'status' => 'inherit' diartikan sebagai status induk, ketika entri dalam db untuk lampiran secara harfiah 'inherit'.

Alternatifnya adalah menggunakan get_children sebagai ganti WP_Query.


0

Saya sudah bisa menampilkan semua gambar yang merupakan lampiran ke posting menggunakan kode ini.

<?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   }
    } ?>

Dan untuk menggemakan URL gambar ukuran penuh asli, Anda dapat menautkan gambar itu ke

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

Semoga ini adalah pendekatan untuk apa yang Anda coba lakukan.


Apakah pagination bekerja dengan itu? Dan bisakah Anda menunjukkan sisa kode output Anda? Saya sedang melakukan pengodean ulang sebuah galeri tema untuk benar-benar membuat pagination pada lampiran yang ada di halaman. Terima kasih!

Jika saya mengunggah 4 gambar ke posting, dan saya menambahkan ini ke entri entri konten utama di single.php, itu hanya akan memuntahkan 4 tag gambar. Src = masing-masing akan mengarah ke ukuran gambar besar asli. Pagination tidak berfungsi dengan ini, karena meludahkan setiap dan semua gambar yang dilampirkan pada posting.
Chad Von Lind
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.