=== Flexi Recent Comments ===

Kontributor: Mhd Wahyu NZ
Tautan Donasi: https://mwahyunz.id/plugin
Tag: komentar, komentar terbaru, shortcode, performa, caching
Membutuhkan setidaknya: 5.8
Diuji hingga: 6.8.2
Tag Stabil: 1.5.2.3
Lisensi: GPLv2 atau yang lebih baru
URI Lisensi: https://www.gnu.org/licenses/gpl-2.0.html

Tampilkan komentar terbaru WordPress Anda menggunakan shortcode [flexicomments] dengan fitur caching dan keamanan tingkat lanjut.

== Deskripsi ==
Plugin WordPress Flexi Recent Comments menampilkan komentar terbaru di mana saja menggunakan shortcode. Plugin ini dilengkapi dengan atribut untuk kustomisasi: avatar, jumlah komentar, visibilitas penulis komentar, batas karakter komentar, tampilan judul postingan, dan tanggal komentar. Dengan object caching dan transient caching bawaan, plugin ini fleksibel dan sangat cepat!

== Instalasi ==
1. Unggah folder `flexi-recent-comments` ke direktori `/wp-content/plugins/`.
2. Aktifkan melalui menu 'Plugin' di WordPress.
3. Tambahkan shortcode '[flexicomments]' di mana pun Anda inginkan.

== Pertanyaan yang Sering Diajukan ==

= Apakah plugin ini memerlukan pengaturan khusus? =
Tidak. Instal, aktifkan, dan gunakan shortcode. Plugin berfungsi langsung dengan pengaturan default yang cerdas.

= Bagaimana cara menggunakan shortcode? =
Tambahkan '[flexicomments]' ke postingan, halaman, atau widget. Gunakan atribut untuk kustomisasi.

= Apa saja atribut yang tersedia? =
* number: Jumlah komentar yang ditampilkan (1-50, default: 5)
* avatar: Tampilkan avatar (0/1, default: 1)
* size: Ukuran avatar dalam piksel (20-200, default: 50)
* author: Sertakan komentar dari penulis postingan (0/1, default: 1)
* limit: Batas karakter komentar (10-500, default: 80)
* title: Tampilkan judul postingan (0/1, default: 1)
* date: Tampilkan tanggal komentar (0/1, default: 1)

= Contoh Penggunaan =

Penggunaan default:
[flexicomments]

Penggunaan lanjutan:
[flexicomments number="3" size="75" author="0" limit="25" title="1" date="0"]

= Apakah plugin ini kompatibel dengan plugin caching? =
Ya! Plugin ini menggunakan object caching dan transient WordPress untuk performa optimal dengan plugin caching apa pun.

= Apakah plugin ini aman? =
Ya. Semua output di-escape dan disanitasi dengan benar mengikuti standar keamanan WordPress.

== Log Perubahan ==

= 1.5.2.3 =
* **PERBAIKAN KOMPATIBILITAS PHP 8.0+**: Mengubah visibility magic methods `__clone()` dan `__wakeup()` dari `private` ke `public` untuk memenuhi persyaratan PHP 8.0+.
* **KUALITAS KODE**: Menambahkan pesan error yang tepat menggunakan `_doing_it_wrong()` untuk pelanggaran singleton pattern.
* **KUALITAS KODE**: Menambahkan dokumentasi metode untuk magic methods dengan tag `@return` yang tepat.

= 1.5.2.2 =
* **PERBAIKAN BUG**: Memperbaiki encoding UTF-8 untuk karakter pemisah bullet (•) di bagian meta.
* **KUALITAS KODE**: Memastikan encoding karakter UTF-8 yang konsisten di seluruh plugin.
* **VERIFIKASI**: Memastikan bahwa judul postingan ditautkan dengan benar ke URL postingan masing-masing.

= 1.5.2.1 =
* **PERBAIKAN CSS KRITIS**: Menambahkan penghapusan pseudo-element `::marker` secara eksplisit untuk mencegah bullet disc pada tema tertentu.
* **CSS**: Menambahkan `list-style-position: outside` ke list items untuk pencegahan bullet tambahan.
* **CSS**: Meningkatkan spesifisitas untuk `::marker` dengan beberapa properti fallback (content, display, font-size, color).

= 1.5.2 =
* **PERBAIKAN BUG KRITIS**: Memperbaiki masalah encoding karakter ellipsis UTF-8 (sebelumnya ditampilkan sebagai ÃƒÂ¢Ã¢â€šÂ¬Ã‚Â¦).
* **PERBAIKAN PERFORMA KRITIS**: Menghilangkan N+1 queries dengan mengimplementasikan batch post loading menggunakan `get_posts_batch()`.
* **PERFORMA**: Menambahkan invalidasi cache otomatis pada aksi komentar (post, edit, delete, perubahan status).
* **PERFORMA**: Menonaktifkan meta dan post caching yang tidak perlu dalam query komentar dengan `update_comment_meta_cache` dan `update_comment_post_cache`.
* **PERFORMA**: Menambahkan normalisasi cache key yang tepat untuk mencegah entri cache duplikat.
* **PERFORMA**: Konstanta cache untuk maintainability yang lebih baik.
* **KEAMANAN**: Meningkatkan perlindungan XSS dengan menggunakan `strip_tags()` alih-alih `wp_kses()` untuk konten komentar.
* **KEAMANAN**: Menambahkan validasi URL untuk tautan komentar untuk mencegah URL javascript:.
* **KEAMANAN**: Menambahkan `rel="nofollow noopener"` ke semua tautan eksternal.
* **KEAMANAN**: Menambahkan casting integer untuk ID penulis untuk mencegah masalah type juggling.
* **KUALITAS KODE**: Menambahkan atribut `loading="lazy"` ke avatar untuk performa halaman yang lebih baik.
* **KUALITAS KODE**: Meningkatkan pemotongan komentar untuk menghapus kata yang tidak lengkap di akhir.
* **KUALITAS KODE**: Menambahkan komentar translator yang tepat untuk placeholder sprintf.
* **KUALITAS KODE**: Menggunakan `get_option('date_format')` untuk format tanggal yang konsisten.
* **KUALITAS KODE**: Menambahkan dokumentasi metode dengan type hints yang tepat.
* **KUALITAS KODE**: Menambahkan validasi nilai minimum (misalnya, ukuran avatar minimum 20px).
* **KUALITAS KODE**: Menambahkan kelas CSS semantik untuk kontrol styling yang lebih baik.
* **KUALITAS KODE**: Mengganti SQL kustom dengan query builder WordPress jika memungkinkan.
* **CSS**: Meningkatkan spesifisitas CSS untuk mencegah override tema pada styling list.
* **CSS**: Menambahkan penghapusan pseudo-element (::before, ::after) yang mungkin diinjeksi tema secara eksplisit.
* **CSS**: Menambahkan style untuk kelas semantik baru (flexicomments_item, flexicomments_date, flexicomments_post_title, flexicomments_separator).
* **CSS**: Meningkatkan focus state untuk aksesibilitas navigasi keyboard (styling outline).
* **CSS**: Menambahkan transisi smooth untuk efek hover/focus (0.2s ease).
* **CSS**: Meningkatkan layout responsif dengan properti flexbox gap.
* **CSS**: Menambahkan styling empty state untuk pesan "Tidak ada komentar yang ditemukan".
* **CSS**: Menambahkan media query print untuk output yang ramah printer.
* **CSS**: Menambahkan `user-select: none` untuk karakter pemisah.
* **PERBAIKAN BUG**: Memperbaiki potensi masalah dengan tautan komentar tidak valid yang fallback ke permalink postingan.

= 1.5.1 =
* Memperbaiki tampilan avatar untuk komentar tamu.
* Meningkatkan penanganan parameter dalam fungsi WordPress.

= 1.5.0 =
* **PERBAIKAN BUG KRITIS**: Memperbaiki parameter `get_users()` yang deprecated `'who' => 'authors'` diganti dengan `'capability'`.
* **PERBAIKAN BUG**: Memperbaiki penggunaan parameter yang salah dalam `get_comment_author()` dan `get_comment_date()`.
* **KEAMANAN**: Menambahkan escaping komprehensif untuk semua output menggunakan `esc_html()`, `esc_url()`, `wp_kses_post()`.
* **KEAMANAN**: Menambahkan validasi keberadaan postingan sebelum merender komentar.
* **PERFORMA**: Mengimplementasikan pola Singleton untuk mencegah multiple instances.
* **PERFORMA**: Menambahkan object caching dengan `wp_cache_*` untuk output shortcode (cache 5 menit).
* **PERFORMA**: Menambahkan object caching untuk query komentar (cache 10 menit).
* **PERFORMA**: Menambahkan static caching untuk ID penulis untuk mengurangi pemanggilan fungsi.
* **PERFORMA**: Menambahkan `'no_found_rows' => true` ke query komentar untuk kecepatan.
* **PERFORMA**: Mengimplementasikan output buffering untuk pembangunan string yang efisien.
* **KUALITAS KODE**: Refactoring ke metode yang lebih kecil dan fokus dengan visibility yang tepat.
* **KUALITAS KODE**: Menambahkan dokumentasi metode dan type hints.
* **KUALITAS KODE**: Menambahkan validasi input dengan batas nilai maksimum.
* **CSS**: Menambahkan desain responsif untuk perangkat mobile.
* **CSS**: Menambahkan `box-sizing` dan `overflow-wrap` untuk stabilitas layout yang lebih baik.

= 1.4.0 =
* Perubahan implementasi get_post_authors_ids() dengan versi yang menggunakan get_users() dan transient caching.
* Mengganti nama fungsi get_post_authors_ids() menjadi frc_get_post_authors_ids() dan memperbarui pemanggilannya.
* Memindahkan registrasi CSS ke hook wp_enqueue_scripts menggunakan wp_register_style().

= 1.2.0 =
* Meningkatkan keamanan, sanitasi, caching, dan best practices.

= 1.0.0 =
* Rilis awal.

== Pemberitahuan Upgrade ==

= 1.5.2.3 =
Perbaikan kompatibilitas PHP 8.0+ untuk magic methods. Update direkomendasikan untuk menghilangkan PHP warning pada server modern.

= 1.5.2.2 =
Perbaikan bug minor untuk encoding karakter UTF-8 pada pemisah. Update direkomendasikan untuk tampilan karakter yang tepat.

= 1.5.2.1 =
Perbaikan CSS untuk mencegah bullet point pada tema tertentu. Update direkomendasikan jika Anda melihat bullet yang tidak diinginkan.

= 1.5.2 =
**UPDATE PENTING**: Versi ini memperbaiki masalah performa query N+1 yang kritis, bug encoding UTF-8, dan menambahkan invalidasi cache otomatis. Sangat direkomendasikan untuk semua pengguna.

= 1.5.1 =
Perbaikan bug untuk tampilan avatar dan parameter fungsi.

= 1.5.0 =
**UPDATE PENTING**: Versi ini memperbaiki penggunaan fungsi deprecated yang kritis dan menambahkan peningkatan keamanan serta performa yang komprehensif. Update segera.

= 1.4.0 =
Meningkatkan keamanan dan performa.