Script Custom Field untuk melampirkan gambar, link, atau file wordpress dengan mudah

Kolom kustom (custom field) untuk memasukkan gambar, link, atau file ke dalam postingan

Menambahkan script costum field di wordpress

Custom Fields bisa sangat membantu untuk melampirkan konten ke postingan atau halaman Anda, misalnya sejumlah link, file, atau mungkin slideshow gambar. Saya menulis fungsi PHP kecil untuk mengotomatiskan pembuatan gambar, tautan, dan array file, dan untuk membuat array dengan labelnya.

Berikut ini contoh penggunaannya: misalkan saya perlu melampirkan 5 gambar ke sebuah posting, masing-masing dengan labelnya sendiri. Saya bisa menempatkannya di editor sendiri, tetapi dengan menggunakan Custom Fields saya juga bisa membuat slideshow yang bagus. 

Untuk mencapai ini, saya perlu membuat beberapa Bidang Kustom (custom field). Pertama kita memiliki kunci "image1", "image2", "image *" hingga "image5", ini akan menampung URL gambar. Ini akan cukup untuk membuat larik gambar, tetapi saya ingin beberapa di antaranya memiliki label juga. 

Katakanlah gambar dengan kunci "image2" membutuhkan label "Gambar Kedua", saya dapat melakukannya dengan menambahkan bidang bernama "image2_label" dengan nilai "Gambar Kedua".

Dalam contoh ini fungsi akan membuat dua array PHP, satu disebut "$ post_images" yang berisi gambar, dan satu lagi "$ post_images_label" yang berisi label untuk gambar ini. Saya akan menunjukkan kepada Anda cara melakukan loop melalui array ini nanti, tetapi Anda harus mengerti maksud melakukan ini sekarang. Daftar link dan file serta slideshow gambar dibuat menggunakan Custom Fields.

Fungsi ini juga menyederhanakan pengambilan lainnya (kunci non-daftar), dengan meletakkan semuanya di objek "$ post_var". Jika saya membuat Bidang Kustom yang disebut "myField", saya dapat dengan mudah mencapai nilainya melalui $ post_var ["myField"]. Ini lebih pendek daripada metode "get_post_meta ()" yang disebutkan di atas.

Script atau fungsi yang digunakan dalam kolom custom (custom field)

Berikut fungsi yang melakukan triknya, salin / tempel ini di file functions.php Anda sehingga Anda dapat mengaksesnya dari tema Anda. Saya akan sangat berterima kasih jika Anda tetap menyimpan pemberitahuan penulis di bagian atas ;-)

function bd_parse_post_variables () { 
 // bd_parse_post_variables fungsi untuk tema WordPress oleh Nick Van der Vreken. 
 // silakan merujuk ke bydust.com/using-custom-fields-in-wordpress-to-attach-images-or-files-to-your-posts/ 
 // untuk informasi atau pertanyaan lebih lanjut. 
 global $ post, $ post_var; 
 // isi semua tipe yang ingin Anda daftarkan dalam sebuah array, dan 
 // label yang harus mereka dapatkan jika tidak ada label yang ditentukan. 
 // contoh: setiap file harus 
 diberi 
label "Download" jika tidak ada 
// label yang disetel untuk file tersebut. 
 $ types = array ('image' => 'info tidak tersedia', 
 'file' => 'Unduh', 
 'link' => 'Baca selengkapnya ...');
 

 foreach (get_post_custom ($ post-> ID) sebagai $ k => $ v) $ post_var [$ k] = array_shift ($ v); 
 // membuat array 
 foreach ($ types as $ type => $ message) { 
 global $ {'post _'. $ type.'s '}, $ {' post _ '. $ type.'s_label'}; 
 $ i = 1; 
 $ {'post _'. $ type.'s '} = array (); 
 $ {'post _'. $ type.'s_label '} = array (); 
 sementara ($ post_var [$ type. $ i]) { 
 echo $ type. $ i. ' 
- '. $ {$ type. $ i .'_ label'}; 
 array_push ($ {'post _'. $ type.'s '}, $ post_var [$ type. $ i]); 
 array_push ($ {'post _'. $ type.'s_label '}, $ post_var [$ type. $ i .'_ label']? htmlspecialchars ($ post_var [$ type. $ i .'_ label ']): $ message) ; 
 $ i ++; 
 } 
 } 
 }
Baca juga: Plugin untuk memasukkan persamaan matematika di wordpress

Menyesuaikan skrip dengan kebutuhan Anda

Anda mungkin perlu mengedit fungsi ini agar sesuai dengan kebutuhan Anda. Saat ini membuat daftar untuk file, tautan, dan gambar dalam variabel berikut:

$post_images (hold the values given to "image1", "image2", "image*")
$post_images_label (holds the values given to "image1_label", "image2_label", "image*_label". If no label is specified but an image*-key is, the label for that image will be the default label specified in the script. This goes for all _label arrays.
$post_files (holds the values given to "file1", "file2", "file*")
$post_files_label (holds the values given to "file1_label", "file2_label", "file*_label")
$post_links (holds the values given to "link1", "link2", "link*")
$post_links_label (holds the values given to "link1_label", "link2_label", "link*_label")

Semua informasi untuk array ini termasuk dalam $ types-variable. Satu-satunya hal yang perlu Anda lakukan untuk menambahkan tipe adalah menambahkan tipe itu ke array. Misalnya jika Anda ingin menampilkan daftar nama dan gambar kucing Anda, Anda memerlukan ini:

// isi semua tipe yang ingin Anda daftarkan dalam sebuah array, dan 
 // label yang harus mereka dapatkan jika tidak ada label yang ditentukan. 
 // contoh: setiap file harus 
 diberi 
label "Download" jika tidak ada 
// label yang disetel untuk file tersebut. 
 $ types = array ('image' => 'no info available', 
 'file' => 'Download', 
 'link' => 'Read more ...', 
 'cat' => 'This cat has no name' );

Dengan contoh ini, Anda dapat menambahkan Kunci Kustom bernama "cat1", "cat1_label", "cat2", "cat2_label", "cat *", "cat * _label" di mana tombol "cat *" - akan menampung gambar kucing, dan kunci "cat * _label" -nya akan menjadi nama kucing. Fungsi ini akan membuat array "$ post_cats" dan "$ post_cats_label", yang berisi setiap gambar dan nama kucing.

Menggunakan Kolom Kustom yang diurai dalam tema Anda

Kami sekarang memiliki array kami yang berisi nilai Bidang Kustom yang telah kami siapkan. Anda dapat menggunakan ini sebagai array PHP biasa, berikut cara saya melakukannya:

<!-- Start the Loop. -->  
<?php if ( have_posts() ) : while ( have_posts() ) : the_post();  
// call the function in our functions.php file bd_parse_post_variables();  
// these variables are now available: 
// $post_var // $post_images and $post_images_label 
// $post_links and $post_links_label 
// $post_files and $post_files_label 
?>  

<!-- Display the Post's Content in a div box. -->  
<div class="entry">    
<?php the_content(); ?>  
</div>     

<!-- Display our Custom Field --> 
<div class="link">    
link1: "<?php echo $post_var['myField']; ?>"  
</div> 

<!-- Display the list of links --> 
<ul> 
<?php while(count($post_files) > 0): ?>  
<li class="file"> 
<a href="<?php echo array_shift($post_files); ?>" title="Click to download this file"> 
<?php echo array_shift($post_files_label); ?> 
</a> 
</li> 
<?php endwhile; ?> 
</ul>    

<!-- Stop The Loop (but note the "else:" - see next line). -->  
<?php endwhile; else: ?>  
<!-- The very first "if" tested to see if there were any Posts to -->  
<!-- display.  This "else" part tells what do if there weren't any. --> 
<p>Sorry, no posts matched your criteria.</p>  
<!-- REALLY stop The Loop. -->  
<?php endif; ?>

Saya harap penjelasan ini bermanfaat bagi Anda. Jika Anda menggunakan kode saya atau mengubahnya untuk meningkatkan fungsinya, beri tahu saya ;-)