Saya mencoba untuk mengambil dan menyisipkan gambar di luar lingkungan wordpress ke pos kustom melalui PHP.
Bagaimana cara memindahkan / mengunggah gambar itu ke direktori upload tahun lalu format direktori wordpress seperti halnya wordpress dan mengatur gambar itu untuk menampilkan gambar terhadap posting kustom?
Juga untuk mengunggah gambar ke galeri posting khusus?
Di bawah ini adalah kode saya
$filename = $image['name'];
$target_path = "../wp-content/uploads/";
$target_path = $target_path . $filename;
$wp_filetype = wp_check_filetype(basename($filename), null );
$wp_upload_dir = wp_upload_dir();
$attachment = array(
'guid' => $wp_upload_dir['baseurl'] . '/' . basename( $filename ),
'post_mime_type' => $wp_filetype['type'],
'post_title' => preg_replace('/\.[^.]+$/', '', basename($filename)),
'post_content' => '',
'post_status' => 'inherit',
);
$attach_id = wp_insert_attachment( $attachment, $target_path, $post_id );
$attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
wp_update_attachment_metadata( $attach_id, $attach_data );
set_post_thumbnail( $post_id, $attach_id );
saya telah berhasil mengunggah gambar ke direktori unggahan saya tetapi tidak dapat membuat folder tahun dan tanggal. ini ada fungsi wp untuk itu ??
sumber
media_sideload_image
untuk'id'
dan akan kembali lampiran id baru. Misalnya:$new_att_id = media_sideload_image($image, $post_id, "image description...", 'id'); if(!is_wp_error($new_att_id)) { set_post_thumbnail($post_id, $new_att_id); }
Cobalah penjelasan mengunggah ini menggunakan jalur dan poskan ID .
Berikut kodenya (untuk warisan):
sumber
Silakan merujuk kode berikut yang mengatur gambar unggulan secara terprogram. http://www.pearlbells.co.uk/code-snippets/set-featured-image-wordpress-programmatically/
sumber
Mungkin saya salah paham, tetapi mengapa Anda ingin melakukan itu di luar lingkungan WordPress? Mereplikasi fungsi ini akan banyak pekerjaan! WordPress melakukan lebih dari sekadar mengunggah file dan menempatkannya di direktori tertentu, misalnya mengendalikan pengguna mana yang diizinkan untuk mengunggah file, menambahkan catatan basis data untuk diunggah dan mengatur hubungan gambar unggulan, menjalankan tindakan dan filter untuk plugin eksternal tergantung pada unggah file - semuanya sambil mematuhi pengaturan situs (terkait dengan konvensi penamaan, lokasi unggah media, dll).
Jika Anda hanya ingin mengunggah file tanpa masuk ke bagian admin WordPress, misalnya untuk mengunggah file dari situs eksternal, Anda mungkin ingin melihat-lihat API XML-RPC dan khususnya
uploadFile
metodenya.Pilihan lain adalah menulis sendiri API mini. Pada dasarnya yang ingin Anda lakukan adalah ini:
wp_upload_dir()
untuk mendapatkan jalur direktori unggah dansanitize_file_name()
untuk membangun jalur dan menulis file ke lokasi yang dihasilkan.wp_insert_attachment()
untuk menyimpan lampiran dalam basis data (wp_check_filetype()
akan sangat membantu untuk pengaturanpost_mime_type
). Opsional juga mengaturpost_parent
dan_thumbnail_id
kunci meta jika Anda suka.wp_create_nonce()
danwp_verify_nonce()
untuk membuat formulir sedikit lebih aman.sumber
wp_insert_attachment()
, itu harus melakukan apa yang Anda butuhkan saya pikir. Saya akan sangat menyarankan memodifikasi secara manual database di luar WordPress jika itu yang Anda lakukan. Sebaliknya, lihat saja sumber WordPress dan cobalah untuk mengidentifikasi bagian-bagian yang bertanggung jawab untuk menambahkan data posting, menangani unggahan file dan memasukkan lampiran. Dengan kata lain, cukup banyak apa yang saya uraikan dalam jawaban saya di atas.