// Helper function to log search to JSON
function tgl_log_mimpi_json($mimpi) {
if (empty($mimpi)) return;
$file_path = plugin_dir_path(__FILE__) . 'mimpi_log.json';
$ip_address = $_SERVER['REMOTE_ADDR'];
$current_time = current_time('mysql');
$log_data = [];
if (file_exists($file_path)) {
$content = file_get_contents($file_path);
$log_data = json_decode($content, true);
if (!is_array($log_data)) $log_data = [];
}
// Add new entry to the beginning
array_unshift($log_data, [
'mimpi' => $mimpi,
'ip' => $ip_address,
'time' => $current_time
]);
// Limit to 100 entries
$log_data = array_slice($log_data, 0, 100);
// Save with file lock to prevent corruption
file_put_contents($file_path, json_encode($log_data), LOCK_EX);
}
// Fungsi untuk menampilkan form pencarian dan hasilnya
function tgl_mimpi_search_shortcode() {
global $wpdb;
// Ambil nilai 'mimpi' jika ada
$mimpi_input = isset($_GET['mimpi']) ? sanitize_text_field($_GET['mimpi']) : '';
// Inisialisasi output HTML dengan container Bootstrap
$output = "
";
$output .= "
Cari Mimpi
";
$output .= "";
// Cek apakah ada input pencarian dan memenuhi syarat
if (!empty($mimpi_input)) {
// Memecah input menjadi kata-kata
$words = explode(' ', $mimpi_input);
// Filter untuk setiap kata
$filtered_words = array_filter($words, function($word) {
return mb_strlen(trim($word), 'UTF-8') >= 3; // Memastikan setiap kata minimal 3 huruf
});
// Memastikan jumlah kata tidak lebih dari 4
if (count($filtered_words) > 4) {
$output .= "
Masukkan maksimal 4 kata untuk pencarian.
";
} else {
$mimpi_length = mb_strlen($mimpi_input, 'UTF-8');
// Validasi minimal 3 huruf total
if ($mimpi_length < 3) {
$output .= "
Masukkan minimal 3 huruf untuk pencarian.
";
} else {
// Membuat query LIKE dengan OR untuk setiap kata yang valid
$like_clauses = [];
foreach ($filtered_words as $word) {
$like_clauses[] = "Mimpi LIKE '%" . $wpdb->esc_like($word) . "%'";
}
// Menggabungkan kondisi LIKE dengan OR
$query = implode(' OR ', $like_clauses);
// Query database untuk mencari data yang cocok
$results = $wpdb->get_results(
"SELECT Mimpi, Jenis, kol1, kol2, kol3, kol4, kol5 FROM tgl_mimpi WHERE " . $query . " ORDER BY Jenis ASC"
);
// Cek apakah ada hasil
if ($results) {
// Log pencarian yang valid ke JSON
tgl_log_mimpi_json($mimpi_input);
$output .= "
ARTI MIMPI: " . esc_html($mimpi_input) . "
";
$jenis_terakhir = ''; // Variabel untuk menyimpan jenis terakhir agar tidak berulang
$output .= "
"; // Mulai flex container untuk memusatkan card
foreach ($results as $row) {
// Tampilkan card baru jika Jenis berubah
if ($jenis_terakhir !== $row->Jenis) {
if ($jenis_terakhir !== '') {
// Tutup card sebelumnya jika bukan pertama kali
$output .= "
"; // Tutup card-body
$output .= "
"; // Tutup card
}
// Mulai card baru untuk Jenis baru
$output .= "
"; // Set lebar maksimum card
$output .= "
";
$output .= "
Arti Mimpi {$row->Jenis} {$mimpi_input}
";
$output .= "
";
$output .= "
";
$jenis_terakhir = $row->Jenis;
}
// Tampilkan data Mimpi dan kolom-kolomnya menggunakan grid
$output .= "
"; // Tutup card
$output .= ""; // Tutup flex container
} else {
// Pesan jika tidak ada hasil
$output .= "
Tidak ada hasil yang cocok untuk pencarian \"" . esc_html($mimpi_input) . "\".
";
}
}
}
}
$output .= ""; // Tutup container
return $output;
}
// Mendaftarkan shortcode di WordPress
add_shortcode('tgl_mimpi_search', 'tgl_mimpi_search_shortcode');
// Fungsi untuk menampilkan form pencarian yang mengarahkan ke /cari-mimpi/?mimpi={mimpi}
function tgl_mimpi_search_form_shortcode() {
// Ambil nilai 'mimpi' jika ada untuk mempertahankan nilai di form
$mimpi_input = isset($_GET['mimpi']) ? sanitize_text_field($_GET['mimpi']) : '';
// Inisialisasi output HTML dengan container Bootstrap
$output = "
";
$output .= "
Punya Mimpi jitu, cari disini!
";
$output .= "";
$output .= "
"; // Tutup container
return $output;
}
// Mendaftarkan shortcode [tgl_mimpi_search_form]
add_shortcode('tgl_mimpi_search_form', 'tgl_mimpi_search_form_shortcode');
/**
* Shortcode untuk menampilkan data 'mimpi' dari JSON log (100 terakhir) dengan efek marquee.
*/
function tampilkan_mimpi_terbaru_js() {
$file_path = plugin_dir_path(__FILE__) . 'mimpi_log.json';
if (!file_exists($file_path)) {
return '
';
}
// Ambil mimpi unik berdasarkan IP untuk variasi (opsional, tapi bagus untuk tampilan)
// Sesuai permintaan "catat 100", kita tampilkan saja yang ada di log
$mimpi_text = '';
$seen_dreams = [];
foreach ($log_data as $entry) {
$dream = trim($entry['mimpi']);
$dream_low = strtolower($dream);
if (!in_array($dream_low, $seen_dreams)) {
$mimpi_text .= '' . esc_html($dream) . ' • ';
$seen_dreams[] = $dream_low;
}
}
if (empty($mimpi_text)) {
return '';
}
// Output HTML untuk marquee
$output = '
Selamat Bergabung kembali bersama angkanet dalam room Prediksi HK. Untuk kenyamanan dalam berprediksi, kami melarang adanya posting nomor WA, Web atau FB. Angkanet juga tidak pernah menjual prediksi, software, atau aplikasi togel lainnya. Berprediksilah secara damai dan elegan. Terima kasih telah menjadi pengunjung setia angkanet
Result Hongkong Pools terbaru
Tanggal 29-03-2026
0683
Selamat untuk yang Jackpot!!!
Prediksi HK Rabu, 25-03-2026 Merupakan Prediksi Otomatis yang menggabungkan Metode Kalender Togel Dengan LN Generator yang akurasi prediksinya sudah kita ketahui bersama. Jadi harap Maklum Jika kadang meleset Prediksi HK kita. Jadikan ini sebagai perbandingan saja dan tetap Utamakan karya sendiri
1168
1178
*11* (2d depan)
Mjp
HK pools
65*67*83*85
{{{ 65 }}}
Kop : 0.2.4
065*067*085
Wis
Jaga(((( 51 ))))
Kang
Cocok Mbah
065
Mencoba prediksi wew soalnya suka d tukar tuker loto sama hk poll 05786 HK lotto 72910 ayok d obok:tuzki93:
ijin ambil 72910 ter buat polsss berangkat 100 perak *
ndang dibeber kelosone mbah kenek gawe ngeramal bareng
HK pools
Line…27*36*39*47*56*57.bb
Top ..27*56*57.bb
1368 bbfs
HKPLS.png)
BBFS:27668
2D:26,86BB
CD:96,46,45
CM:6666668888888
Tardal1
THR ANGKA
nb.
beda pil ihanitubiasa
⁰⁵²¹ ³⁴6⁷⁸⁹
Hongkong Pools
Pasang Poltar/BBFS/CBMN ==>>> 2356790
Top 2d Depan ==>>> 70/30