Saya menggunakan kode ini langsung dari codex .
function echo_first_image ($postID)
{
$args = array(
'numberposts' => 1,
'order'=> 'ASC',
'post_mime_type' => 'image',
'post_parent' => $postID,
'post_status' => null,
'post_type' => 'attachment'
);
$attachments = get_children( $args );
//print_r($attachments);
if ($attachments) {
foreach($attachments as $attachment) {
$image_attributes = wp_get_attachment_image_src( $attachment->ID, 'thumbnail' ) ? wp_get_attachment_image_src( $attachment->ID, 'thumbnail' ) : wp_get_attachment_image_src( $attachment->ID, 'full' );
echo '<img src="'.wp_get_attachment_thumb_url( $attachment->ID ).'" class="current">';
}
}
}
Saya menyebutnya dalam loop seperti ini echo_first_image ($post->ID);
Fungsi ini memanggil tetapi tidak ada yang mendapat output ... sejauh yang saya bisa lihat tidak ada di dalamnya $attachments
Saya memiliki gambar di postingan yang saya gunakan. Ini bukan gambar unggulan atau di galeri, hanya di pos.
Apakah saya melakukan sesuatu yang salah, atau ada sesuatu yang salah dengan kode itu?
sumber
get_childre
, lampiran adalah posting anak-anak jadi contoh ini hanya dapat berfungsi untuk konten yang dilampirkan.Saya menyarankan dua cara:
Menggunakan Plugin
Saya akan mempertimbangkan untuk menggunakan plugin Get The Image , sehingga Anda dapat melakukan sesuatu seperti:
Di atas akan mencoba melakukan hal-hal dalam urutan ini:
Membangun dukungan dalam tema Anda
Namun, saya menggunakan fungsi dalam plugin yang mengimplementasikan dua item pertama dari daftar di atas.
Anda dapat menyesuaikannya agar juga cocok dengan item ketiga dalam cuplikan Diana:
Cukup tempelkan kedua fungsi ini di
functions.php
file Anda dan gunakan di loop seperti:sumber
kode ini tampaknya sangat aman. seperti yang Anda katakan, Anda tidak memiliki gambar yang dilampirkan pada pos.
Coba buka panel admin media dan lampirkan gambar ke posting itu.
Bergantian, memo konten posting dengan regex untuk gambar di dalamnya.
sumber
Saya mengerti ini adalah pertanyaan yang sangat lama, tetapi saya meletakkan jawaban saya di sini karena jawaban yang paling banyak dipilih tidak cocok untuk orang yang baru mengenal PHP.
preg_match bukan pendekatan yang baik untuk parsing HTML dalam PHP karena preg_match adalah untuk ekspresi reguler dan HTML bukan ekspresi reguler.
Kita bisa menggunakan DOM saja.
Menggunakan DOM benar-benar baik karena Anda dapat melakukan lebih banyak hal selain hanya mendapatkan gambar pertama dan ini adalah cara yang tepat untuk mem-parsing html.
Saya berharap saya dapat memberikan jawaban untuk menggunakan fungsi wordpress (fungsi dari CODEX dan inti) untuk mendapatkan gambar pertama tetapi itu juga masalah yang saya hadapi.
sumber
Kode ini berfungsi untuk saya:
sumber