Cara Membuat Plugin WordPress untuk Menambahkan Atribut Alt dan Deskripsi Media Gambar Secara Masal
- Administrator
- Cara Membuat Plugin, Wordpress
- 2065 Kali Dilihat
- 0 Komentar
Pengoptimalan SEO pada gambar adalah aspek penting dalam menjaga kualitas situs web, terutama untuk memastikan gambar dapat diindeks dengan baik oleh mesin pencari. Salah satu cara untuk meningkatkan SEO gambar adalah dengan menambahkan atribut alt dan deskripsi gambar secara lengkap dan relevan.
Pada tutorial kali ini, kita akan membahas bagaimana cara membuat plugin WordPress yang dapat membantu Anda menambahkan atribut alt dan deskripsi gambar secara massal. Plugin ini akan secara otomatis menganalisa dan menghasilkan template untuk setiap gambar yang belum memiliki atribut tersebut.
Persiapan Awal
Sebelum mulai membuat plugin, Anda harus memastikan bahwa WordPress Anda sudah terpasang dan dapat mengakses folder plugin. Plugin ini akan melibatkan pemrograman PHP, dan diharapkan Anda memiliki pengetahuan dasar tentang pengembangan plugin WordPress.
Struktur Dasar Plugin
Mulailah dengan membuat folder untuk plugin Anda di dalam direktori wp-content/plugins
. Misalnya, buat folder dengan nama bulk-media-alt-description
.
Kemudian, buat file utama plugin dengan nama bulk-media-alt-description.php
di dalam folder tersebut. Berikut adalah struktur dasar dari plugin:
<?php
/**
* Plugin Name: Bulk Media Alt and Description Generator
* Description: Plugin untuk menambahkan atribut alt dan deskripsi gambar secara massal berdasarkan analisis konten.
* Version: 1.0
* Author: Nama Anda
*/
// Jangan biarkan file ini dieksekusi langsung.
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit jika diakses langsung
}
// Hook untuk menambahkan menu ke admin dashboard
function bm_add_menu() {
add_menu_page(
'Bulk Media Generator',
'Bulk Media Generator',
'manage_options',
'bulk-media-alt-description',
'bm_generate_alt_and_description_page',
'dashicons-image-filter',
20
);
}
add_action( 'admin_menu', 'bm_add_menu' );
// Halaman untuk konfigurasi plugin
function bm_generate_alt_and_description_page() {
?>
<div class="wrap">
<h2>Bulk Media Alt and Description Generator</h2>
<form method="post">
<input type="submit" name="bm_generate" class="button-primary" value="Generate Alt & Description"/>
</form>
<?php
if ( isset( $_POST['bm_generate'] ) ) {
bm_generate_alt_and_description();
}
?>
</div>
<?php
}
// Fungsi untuk menghasilkan alt dan deskripsi secara massal
function bm_generate_alt_and_description() {
// Ambil data dari judul halaman, post, dan blog
$site_title = get_bloginfo( 'name' );
$posts = get_posts( array( 'posts_per_page' => -1, 'post_status' => 'publish' ) );
$pages = get_pages( array( 'post_status' => 'publish' ) );
$content_titles = array();
$content_titles[] = $site_title;
foreach ( $posts as $post ) {
$content_titles[] = get_the_title( $post );
}
foreach ( $pages as $page ) {
$content_titles[] = get_the_title( $page );
}
// Generate templates untuk alt dan deskripsi
$templates = bm_generate_templates( $content_titles );
// Cari semua media gambar yang belum memiliki atribut alt atau deskripsi
$media_query = new WP_Query( array( 'post_type' => 'attachment', 'posts_per_page' => -1 ) );
foreach ( $media_query->posts as $media ) {
$alt_text = get_post_meta( $media->ID, '_wp_attachment_image_alt', true );
$description = get_post_meta( $media->ID, '_wp_attachment_post_excerpt', true );
if ( empty( $alt_text ) ) {
// Generate alt secara acak berdasarkan template
$random_alt = bm_generate_random_text( $templates['alt_templates'] );
update_post_meta( $media->ID, '_wp_attachment_image_alt', $random_alt );
}
if ( empty( $description ) ) {
// Generate deskripsi berdasarkan template
$random_description = bm_generate_random_text( $templates['description_templates'] );
update_post_meta( $media->ID, '_wp_attachment_post_excerpt', $random_description );
}
}
echo '<div class="updated"><p>Alt dan deskripsi media gambar telah diperbarui!</p></div>';
}
// Fungsi untuk menghasilkan template
function bm_generate_templates( $content_titles ) {
$alt_templates = array();
$description_templates = array();
foreach ( $content_titles as $title ) {
$alt_templates[] = 'Gambar terkait dengan ' . $title;
$description_templates[] = 'Deskripsi gambar untuk ' . $title . ' dengan gambar yang relevan';
}
return array(
'alt_templates' => $alt_templates,
'description_templates' => $description_templates
);
}
// Fungsi untuk menghasilkan teks acak dari template
function bm_generate_random_text( $templates ) {
$random_template = $templates[array_rand($templates)];
return $random_template;
}
?>
Penjelasan Kode
Halaman Pengaturan Plugin
Fungsi bm_generate_alt_and_description_page()
akan membuat halaman di dashboard WordPress yang memungkinkan pengguna mengklik tombol untuk memulai proses pengisian atribut alt dan deskripsi gambar secara massal.
Menganalisa Konten
Fungsi bm_generate_alt_and_description()
menganalisis judul situs, semua halaman, dan semua postingan yang telah diterbitkan untuk menghasilkan template berdasarkan judul-judul tersebut.
Menghasilkan Atribut Alt dan Deskripsi
Berdasarkan template yang dihasilkan, plugin ini kemudian akan memeriksa setiap gambar media (attachment) yang ada di WordPress dan memeriksa apakah atribut alt dan deskripsi sudah diisi. Jika belum, plugin akan mengisi atribut tersebut secara acak menggunakan template yang telah dihasilkan.
Generate Template
Fungsi bm_generate_templates()
akan membuat beberapa template yang dapat digunakan untuk atribut alt dan deskripsi. Setiap template akan disesuaikan dengan judul yang ditemukan selama analisis.
Generate Teks Acak
Fungsi bm_generate_random_text()
memilih secara acak sebuah template dan menggantinya sebagai alt atau deskripsi gambar.
Pengujian Plugin
Setelah Anda selesai menulis kode, aktifkan plugin Anda melalui dashboard WordPress. Pergi ke menu Bulk Media Generator yang muncul di sidebar admin dan klik tombol untuk memulai proses pembuatan atribut alt dan deskripsi untuk semua gambar media yang belum memiliki atribut tersebut.
Kesimpulan
Plugin ini memungkinkan Anda untuk melakukan pembaruan atribut alt dan deskripsi gambar secara massal, yang sangat membantu untuk pengelolaan SEO media di WordPress. Dengan menggabungkan analisis konten dan pembuatan template, plugin ini dapat mempercepat proses pengoptimalan gambar di situs Anda.