' . "\n\n";
// Sisipkan di awal artikel
$new_content = $intro . $post->post_content;
// Hindari loop
remove_action('save_post', 'domainjava_auto_intro_save', 20);
wp_update_post(array(
'ID' => $post_id,
'post_content' => $new_content
));
add_action('save_post', 'domainjava_auto_intro_save', 20, 3);
}
/**
* ==========================================================
* DomainJava Auto Intro PRO
* Author : DomainJava.com
* ==========================================================
*/
add_action('save_post_post', 'dj_auto_intro', 20, 3);
function dj_auto_intro($post_id, $post, $update){
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
if (wp_is_post_autosave($post_id)) return;
if (wp_is_post_revision($post_id)) return;
if ($post->post_status != 'publish') return;
$content = $post->post_content;
if (strpos($content,'') !== false){
return;
}
$judul = get_the_title($post_id);
$linkArtikel = sprintf(
'%s',
esc_url(get_permalink($post_id)),
esc_attr($judul),
esc_html($judul)
);
$home = sprintf(
'DomainJava.com',
esc_url(home_url('/'))
);
/* =========================
KATEGORI (FIX UTAMA)
========================= */
$kategori = 'Informasi';
$cats = wp_get_post_terms($post_id, 'category');
if (!empty($cats) && !is_wp_error($cats)) {
// ambil kategori pertama (lebih stabil dari get_the_category)
$cat = $cats[0];
$kategori = sprintf(
'%s',
esc_url(get_category_link($cat->term_id)),
esc_html($cat->name)
);
}
/* =========================
TAG (lebih aman)
========================= */
$tag = '';
$tags = wp_get_post_terms($post_id, 'post_tag');
if (!empty($tags) && !is_wp_error($tags)) {
$tag_list = [];
// ambil maksimal 1–2 tag biar intro tidak panjang
foreach (array_slice($tags, 0, 2) as $t) {
$tag_list[] = sprintf(
'%s',
esc_url(get_tag_link($t->term_id)),
esc_html($t->name)
);
}
if (!empty($tag_list)) {
$tag = ' serta tag ' . implode(', ', $tag_list);
}
}
// 15 Template
$templates = array(
'Lagi cari informasi tentang %1$s? Tenang, di artikel ini %2$s sudah merangkum pembahasannya dengan bahasa yang mudah dipahami. Topik ini masuk dalam kategori %3$s%4$s.',
'Kalau kamu sedang mencari penjelasan seputar %1$s, kamu berada di halaman yang tepat. %2$s akan mengulasnya secara lengkap dalam kategori %3$s%4$s.',
'%1$s menjadi salah satu topik yang cukup sering dicari belakangan ini. Karena itu, %2$s merangkum informasi pentingnya dalam artikel kategori %3$s%4$s.',
'Masih penasaran soal %1$s? Yuk simak pembahasannya di artikel ini. %2$s menyajikannya secara ringkas, jelas, dan mudah dipahami. Artikel ini termasuk kategori %3$s%4$s.',
'Banyak orang ingin tahu lebih banyak tentang %1$s. Melalui artikel ini, %2$s mencoba menjelaskan poin-poin pentingnya secara sederhana. Topik ini berada dalam kategori %3$s%4$s.',
'Kalau masih bingung dengan %1$s, tidak perlu khawatir. %2$s sudah menyiapkan pembahasan lengkap yang mudah diikuti. Artikel ini termasuk kategori %3$s%4$s.',
'Pembahasan mengenai %1$s sering menjadi pertanyaan banyak pembaca. Di artikel ini, %2$s mengulasnya secara lengkap dalam kategori %3$s%4$s.',
'Ingin tahu lebih jelas tentang %1$s? Simak ulasan berikut yang telah disusun oleh %2$s agar lebih mudah dipahami. Artikel ini berada di kategori %3$s%4$s.',
'Topik %1$s memang menarik untuk dibahas. Lewat artikel ini, %2$s merangkum informasi penting yang bisa menjadi referensi. Artikel ini termasuk kategori %3$s%4$s.',
'Kalau kamu belum menemukan jawaban mengenai %1$s, coba simak pembahasan berikut. %2$s telah merangkumnya dalam kategori %3$s%4$s.'
);
$template = $templates[$post_id % count($templates)];
$intro = "\n";
$intro .= '
'."\n\n";
remove_action('save_post_post','dj_auto_intro',20);
wp_update_post(array(
'ID'=>$post_id,
'post_content'=>$intro.$content
));
add_action('save_post_post','dj_auto_intro',20,3);
}
/**
* ==========================================================
* DomainJava - Auto Closing Article
* Author : DomainJava.com
* ==========================================================
*/
add_action('save_post_post', 'dj_auto_closing', 30, 3);
function dj_auto_closing($post_id, $post, $update){
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
if (wp_is_post_revision($post_id)) return;
if ($post->post_status != 'publish') return;
$content = $post->post_content;
// Sudah ada penutup
if(strpos($content,'') !== false){
return;
}
$judul = get_the_title($post_id);
$home = sprintf(
'DomainJava.com',
esc_url(home_url('/'))
);
$templates = array(
'Demikian pembahasan mengenai %s. Semoga informasi yang disajikan %s dapat membantu menjawab pertanyaan Anda.',
'Sampai di sini pembahasan tentang %s. Semoga artikel dari %s bermanfaat dan bisa menjadi referensi yang tepat.',
'Itulah ulasan lengkap mengenai %s. Jika masih memiliki pertanyaan, Anda bisa mencari pembahasan lainnya di %s.',
'Semoga penjelasan mengenai %s di %s dapat menambah wawasan dan memberikan informasi yang sedang Anda cari.',
'Pembahasan mengenai %s kami akhiri sampai di sini. Terima kasih telah membaca artikel di %s.',
'Mudah-mudahan artikel tentang %s ini bisa memberikan manfaat. Jangan lewatkan artikel menarik lainnya di %s.',
'Terima kasih sudah meluangkan waktu membaca pembahasan mengenai %s. %s akan terus menghadirkan informasi yang bermanfaat.',
'Semoga artikel mengenai %s ini membantu Anda memahami topik yang dibahas. Nantikan informasi menarik lainnya di %s.',
'Demikian informasi seputar %s. Semoga isi artikel ini bermanfaat dan menambah pengetahuan Anda. Kunjungi juga %s untuk artikel lainnya.',
'Terima kasih telah membaca artikel %s. Semoga informasi dari %s dapat menjadi referensi yang berguna.',
'Semoga ulasan mengenai %s memberikan manfaat serta menjawab informasi yang Anda butuhkan. Temukan artikel menarik lainnya di %s.',
'Informasi mengenai %s di atas diharapkan dapat menjadi referensi yang bermanfaat. Ikuti pembahasan terbaru hanya di %s.',
'Kami berharap pembahasan %s ini dapat membantu memperluas wawasan Anda. Terus kunjungi %s untuk informasi terbaru.',
'Terima kasih telah mengikuti pembahasan %s hingga selesai. %s akan terus menyajikan artikel berkualitas.',
'Semoga informasi tentang %s dapat menjadi jawaban atas apa yang sedang Anda cari. Baca juga artikel lain di %s.',
'Jika artikel %s ini bermanfaat, jangan ragu menjelajahi berbagai informasi menarik lainnya di %s.',
'Pembahasan %s telah selesai. Semoga isi artikel ini membantu Anda memperoleh informasi yang akurat dari %s.',
'Semoga rangkuman mengenai %s ini memberikan manfaat bagi Anda. Dapatkan artikel terbaru hanya di %s.',
'Kami berharap artikel tentang %s dapat menjadi referensi yang berguna. Kunjungi kembali %s untuk pembahasan lainnya.',
'Terima kasih telah membaca informasi mengenai %s. Semoga %s selalu menjadi referensi terpercaya Anda.',
'Pembahasan %s di atas disusun agar mudah dipahami. Jangan lewatkan artikel informatif lainnya di %s.',
'Semoga ulasan %s ini bermanfaat dan dapat menjadi sumber informasi yang Anda perlukan. Temukan artikel lain di %s.',
'Informasi mengenai %s telah kami rangkum secara singkat dan jelas. Simak pembahasan lainnya di %s.',
'Kami berharap artikel %s ini memberikan nilai tambah bagi pembaca. Nantikan informasi terbaru dari %s.',
'Semoga pembahasan mengenai %s dapat menjadi referensi yang tepat. %s akan terus menghadirkan artikel pilihan.',
'Terima kasih telah mengunjungi artikel %s. Semoga informasi dari %s bermanfaat bagi Anda.',
'Semoga isi artikel mengenai %s ini sesuai dengan informasi yang Anda cari. Jelajahi artikel lainnya di %s.',
'Kami akan terus memperbarui informasi seputar %s. Jangan lupa kembali mengunjungi %s.',
'Demikian artikel mengenai %s. Semoga bermanfaat dan menjadi referensi yang terpercaya di %s.',
'Terima kasih telah membaca pembahasan %s. Temukan informasi menarik lainnya hanya di %s.',
'Semoga artikel tentang %s dapat membantu Anda memperoleh informasi yang dibutuhkan. Ikuti terus update terbaru di %s.',
'Pembahasan mengenai %s kami sajikan secara ringkas dan informatif. Simak artikel lain yang tersedia di %s.',
'Kami berharap informasi mengenai %s ini dapat menjawab rasa penasaran Anda. Temukan pembahasan lainnya di %s.',
'Semoga rangkuman %s memberikan manfaat dan wawasan baru. Baca juga artikel menarik lainnya di %s.',
'Terima kasih telah menyimak artikel %s. %s akan terus menghadirkan informasi terbaru untuk Anda.',
'Informasi mengenai %s diharapkan dapat menjadi referensi yang berguna. Jangan lewatkan artikel lain di %s.',
'Semoga pembahasan %s ini memberikan jawaban yang Anda perlukan. Terus ikuti informasi terbaru dari %s.',
'Terima kasih telah meluangkan waktu membaca artikel %s. Semoga %s selalu menjadi pilihan referensi Anda.',
'Kami berharap artikel mengenai %s dapat memberikan manfaat bagi semua pembaca. Kunjungi %s kembali untuk artikel terbaru.',
'Demikian ulasan singkat mengenai %s. Semoga informasi dari %s membantu menambah wawasan Anda.',
'Artikel mengenai %s ini diharapkan dapat menjadi referensi yang bermanfaat. Terima kasih telah mengunjungi %s.',
'Semoga pembahasan %s dapat memberikan informasi yang jelas dan mudah dipahami. Simak artikel lainnya di %s.',
'Terima kasih telah membaca artikel tentang %s. Kami akan terus menghadirkan pembahasan menarik di %s.',
'Semoga informasi mengenai %s ini bermanfaat bagi Anda. Jangan lupa kunjungi kembali %s.',
'Demikian pembahasan singkat mengenai %s. Temukan berbagai informasi menarik lainnya di %s.',
'Semoga artikel %s dapat menjadi referensi yang tepat sesuai kebutuhan Anda. Baca artikel lain di %s.',
'Terima kasih telah mengikuti pembahasan mengenai %s. %s siap menghadirkan artikel berkualitas setiap hari.',
'Semoga isi artikel tentang %s memberikan manfaat serta wawasan baru. Nantikan pembahasan berikutnya di %s.',
'Pembahasan mengenai %s telah selesai. Semoga Anda mendapatkan informasi yang dicari melalui %s.',
'Terima kasih telah berkunjung dan membaca artikel %s. Sampai jumpa di pembahasan menarik lainnya di %s.'
);
$template = $templates[$post_id % count($templates)];
$closing = "\n\n";
$closing .= '
';
$closing .= '
'.sprintf($template, esc_html($judul), $home).'
';
$closing .= '
Disclaimer: Artikel ini disusun berdasarkan berbagai sumber terpercaya serta diperbarui secara berkala apabila terdapat informasi terbaru. Jika menemukan data yang perlu diperbaiki atau diperbarui, silakan hubungi tim editorial DomainJava.com.
';
$closing .= '
';
remove_action('save_post_post','dj_auto_closing',30);
wp_update_post(array(
'ID'=>$post_id,
'post_content'=>$content.$closing
));
add_action('save_post_post','dj_auto_closing',30,3);
}
/* =====================================================
PERMANENT INTRO PARAGRAPH
Tidak berubah meskipun artikel diupdate
===================================================== */
/* ---------- PUBLISH PERTAMA ---------- */
add_action('transition_post_status', 'dj_create_intro_once', 20, 3);
function dj_create_intro_once($new_status, $old_status, $post){
if ($old_status === 'publish') {
return;
}
if ($new_status !== 'publish') {
return;
}
$post_id = $post->ID;
if (get_post_meta($post_id, '_dj_intro_saved', true)) {
return;
}
$focus_keyword = get_the_title($post_id);
$openings = [
'Sedang mencari informasi tentang %s?',
'Ingin memahami %s lebih dalam?',
'Butuh penjelasan lengkap mengenai %s?',
'Cari tahu informasi terbaru tentang %s.',
'Pelajari berbagai hal penting terkait %s.',
'Temukan pembahasan lengkap seputar %s.',
'Apa itu %s dan mengapa penting untuk dipahami?',
'Jangan lewatkan informasi penting mengenai %s.',
'Ketahui fakta menarik tentang %s.',
'Pahami konsep %s dengan lebih mudah.',
'Dapatkan wawasan lengkap mengenai %s.',
'Mencari referensi terpercaya tentang %s?',
'Ingin mengetahui seluk-beluk %s?',
'Temukan berbagai informasi penting terkait %s.',
'Kenali lebih jauh tentang %s.',
'Pelajari dasar-dasar %s secara lengkap.',
'Cari jawaban mengenai %s di sini.',
'Simak pembahasan lengkap tentang %s.',
'Ketahui manfaat dan fungsi %s.',
'Yuk pelajari %s secara lebih mendalam.',
];
$bodies = [
'Temukan penjelasan lengkap yang disusun secara sederhana dan mudah dipahami.',
'Artikel ini membahas pengertian, manfaat, contoh, dan penerapannya.',
'Dapatkan panduan praktis yang dapat langsung diterapkan dalam kehidupan sehari-hari.',
'Simak informasi terbaru yang relevan dan bermanfaat untuk Anda.',
'Pelajari langkah-langkah penting yang perlu diketahui secara lengkap.',
'Temukan berbagai tips dan wawasan yang dapat membantu memahami topik ini.',
'Pembahasan disusun secara ringkas namun tetap informatif.',
'Artikel ini cocok bagi pemula maupun yang ingin memperdalam pengetahuan.',
'Seluruh informasi dirangkum dari berbagai aspek penting yang berkaitan.',
'Dapatkan jawaban atas pertanyaan yang sering muncul mengenai topik ini.',
'Materi dijelaskan secara runtut agar lebih mudah dipahami.',
'Informasi disusun berdasarkan poin-poin penting yang sering dicari.',
'Temukan berbagai fakta dan pengetahuan menarik dalam pembahasan ini.',
'Panduan ini membantu Anda memahami konsep secara lebih menyeluruh.',
'Pembahasan dibuat sederhana tanpa mengurangi kualitas informasi.',
'Artikel ini menghadirkan penjelasan yang jelas dan mudah diikuti.',
'Setiap bagian dirancang untuk memberikan wawasan yang bermanfaat.',
'Informasi yang disajikan dapat menjadi referensi terpercaya.',
'Pembahasan berikut cocok dijadikan sumber belajar maupun referensi.',
'Temukan berbagai informasi yang relevan dan mudah diterapkan.'
];
$closings = [
'Baca selengkapnya di bawah ini.',
'Simak pembahasannya sampai selesai.',
'Temukan informasi yang Anda butuhkan sekarang.',
'Jangan lewatkan setiap poin penting yang dijelaskan.',
'Pelajari semuanya secara bertahap dan mudah dipahami.',
'Dapatkan wawasan baru yang bermanfaat.',
'Temukan solusi dan jawaban yang tepat.',
'Pahami topik ini secara menyeluruh.',
'Ikuti panduan lengkap berikut.',
'Mari pelajari lebih lanjut pada pembahasan berikut.',
'Semoga informasi ini dapat membantu kebutuhan Anda.',
'Temukan berbagai penjelasan menarik pada artikel ini.',
'Pastikan membaca hingga akhir agar tidak melewatkan informasi penting dibawah ini.',
'Pembahasan berikut telah dirangkum DomainJava.com secara lengkap.',
'Ketahui berbagai hal penting yang berkaitan dengan topik ini.',
'Dapatkan pemahaman yang lebih baik melalui artikel berikut.',
'Mari simak penjelasan lengkapnya sekarang.',
'Artikel ini disusun untuk membantu Anda memahami topik secara praktis.',
'Temukan berbagai informasi yang mungkin sedang Anda cari.',
'Simak uraian lengkapnya pada pembahasan berikut ini.'
];
shuffle($openings);
shuffle($bodies);
shuffle($closings);
$intro1 =
sprintf($openings[0], $focus_keyword) . ' ' .
$bodies[0] . ' ' .
$closings[0];
$intro2 =
sprintf($openings[1], $focus_keyword) . ' ' .
$bodies[1] . ' ' .
$closings[1];
$intro_html =
"\n\n" .
'
' . esc_html($intro1) . '
' .
'
' . esc_html($intro2) . '
' .
"\n\n";
update_post_meta(
$post_id,
'_dj_intro_saved',
$intro_html
);
$content = get_post_field(
'post_content',
$post_id
);
remove_action(
'transition_post_status',
'dj_create_intro_once',
20
);
wp_update_post([
'ID' => $post_id,
'post_content' => $intro_html . $content
]);
add_action(
'transition_post_status',
'dj_create_intro_once',
20,
3
);
}
/* ---------- JAGA AGAR INTRO TIDAK HILANG ---------- */
add_action('save_post', 'dj_restore_intro_if_missing', 999);
function dj_restore_intro_if_missing($post_id){
if (wp_is_post_revision($post_id)) {
return;
}
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return;
}
$intro = get_post_meta(
$post_id,
'_dj_intro_saved',
true
);
if (!$intro) {
return;
}
$content = get_post_field(
'post_content',
$post_id
);
if (
strpos(
$content,
'DJ_INTRO_START'
) !== false
) {
return;
}
remove_action(
'save_post',
'dj_restore_intro_if_missing',
999
);
wp_update_post([
'ID' => $post_id,
'post_content' => $intro . "\n\n" . $content
]);
add_action(
'save_post',
'dj_restore_intro_if_missing',
999
);
}
/* =====================================================
AUTO META DESCRIPTION
YOAST SEO + RANK MATH
PERMANEN & AUTO RESTORE
===================================================== */
/* =====================================================
GET FOCUS KEYWORD
===================================================== */
function dj_get_focus_keyword($post_id){
$keyword = '';
// Rank Math
$keyword = trim(
get_post_meta(
$post_id,
'rank_math_focus_keyword',
true
)
);
// Yoast SEO
if (empty($keyword)) {
$keyword = trim(
get_post_meta(
$post_id,
'_yoast_wpseo_focuskw',
true
)
);
}
// URL Slug
if (empty($keyword)) {
$slug = get_post_field(
'post_name',
$post_id
);
if (!empty($slug)) {
$keyword = ucwords(
str_replace(
'-',
' ',
sanitize_title($slug)
)
);
}
}
// Judul
if (empty($keyword)) {
$keyword = get_the_title(
$post_id
);
}
return trim(
wp_strip_all_tags(
$keyword
)
);
}
/* =====================================================
BUAT META DESCRIPTION
===================================================== */
add_action(
'transition_post_status',
'dj_generate_meta_description',
20,
3
);
function dj_generate_meta_description(
$new_status,
$old_status,
$post
){
if ($old_status === 'publish') {
return;
}
if ($new_status !== 'publish') {
return;
}
$post_id = $post->ID;
if (
get_post_meta(
$post_id,
'_dj_meta_saved',
true
)
) {
return;
}
$keyword = dj_get_focus_keyword(
$post_id
);
if (empty($keyword)) {
return;
}
$desc_arr = [
'Sedang mencari informasi tentang %s? Temukan penjelasan lengkap, manfaat, dan panduan yang mudah dipahami dalam artikel ini.',
'Pelajari %s secara lengkap melalui pembahasan yang jelas, ringkas, dan mudah dipahami oleh semua pembaca.',
'Temukan informasi penting mengenai %s beserta penjelasan, contoh, dan berbagai hal yang perlu diketahui.',
'Cari tahu segala hal tentang %s melalui artikel informatif yang disusun secara runtut dan mudah dipahami.',
'Pahami %s lebih mudah melalui pembahasan lengkap yang cocok untuk pemula maupun pembaca umum.',
'Temukan penjelasan lengkap tentang %s dengan bahasa sederhana dan informasi yang mudah dipelajari.',
'Pelajari berbagai aspek penting mengenai %s dalam artikel yang informatif dan nyaman dibaca.',
'Dapatkan wawasan lengkap tentang %s melalui pembahasan yang jelas dan mudah dipahami.',
'Artikel ini membahas %s secara lengkap agar pembaca lebih mudah memahami inti topiknya.',
'Temukan berbagai informasi menarik mengenai %s dengan pembahasan yang sederhana dan efektif.',
'Apa itu %s? Temukan pengertian, manfaat, dan informasi penting yang perlu Anda ketahui.',
'Ketahui berbagai fakta menarik tentang %s melalui pembahasan yang mudah dipahami.',
'Cari informasi lengkap seputar %s mulai dari dasar hingga pembahasan yang lebih mendalam.',
'Pelajari %s dengan cara yang lebih mudah melalui artikel yang disusun secara sistematis.',
'Dapatkan penjelasan terbaru mengenai %s beserta berbagai informasi yang relevan.',
'Temukan solusi dan jawaban atas berbagai pertanyaan tentang %s dalam artikel ini.',
'Pahami konsep %s dengan penjelasan yang sederhana namun tetap lengkap dan informatif.',
'Artikel tentang %s ini dirancang untuk membantu pembaca memahami topik dengan lebih cepat.',
'Temukan panduan lengkap mengenai %s dengan pembahasan yang jelas dan mudah diikuti.',
'Pelajari hal-hal penting mengenai %s melalui artikel yang informatif dan bermanfaat.',
'Cari tahu lebih dalam tentang %s dengan pembahasan yang ringan namun tetap lengkap.',
'Temukan berbagai penjelasan menarik mengenai %s yang mudah dipahami semua kalangan.',
'Pelajari dasar-dasar %s melalui pembahasan yang sederhana dan tidak membingungkan.',
'Dapatkan informasi terpercaya mengenai %s melalui artikel yang disusun secara runtut.',
'Temukan pembahasan lengkap tentang %s dengan gaya bahasa yang nyaman dibaca.',
'Ketahui informasi terbaru tentang %s dan berbagai hal penting yang berkaitan dengannya.',
'Pahami %s melalui artikel yang menyajikan informasi secara lengkap dan mudah dipahami.',
'Temukan wawasan baru mengenai %s melalui pembahasan yang informatif dan menarik.',
'Artikel ini membantu Anda memahami %s dengan cara yang lebih sederhana dan efektif.',
'Pelajari %s secara bertahap melalui penjelasan yang jelas dan mudah dimengerti.',
'Temukan informasi seputar %s dengan pembahasan yang lengkap dan mudah dipahami.',
'Cari tahu segala sesuatu tentang %s melalui artikel yang informatif dan ringkas.',
'Pelajari berbagai manfaat dan penjelasan penting mengenai %s dalam artikel ini.',
'Pahami lebih dalam tentang %s melalui pembahasan yang praktis dan mudah diikuti.',
'Temukan berbagai fakta menarik mengenai %s yang mungkin belum Anda ketahui.',
'Dapatkan panduan lengkap mengenai %s dengan penjelasan yang sederhana dan jelas.',
'Artikel ini menyajikan informasi lengkap tentang %s dengan bahasa yang ringan.',
'Pelajari berbagai aspek penting tentang %s secara lebih mudah dan terstruktur.',
'Temukan penjelasan mendalam mengenai %s dengan pembahasan yang nyaman dibaca.',
'Cari informasi terpercaya tentang %s melalui artikel yang disusun secara sistematis.',
'Temukan pembahasan lengkap mengenai %s dengan penjelasan yang jelas dan informatif.',
'Pelajari %s melalui artikel yang dirancang agar mudah dipahami oleh semua pembaca.',
'Dapatkan berbagai informasi penting tentang %s dalam satu pembahasan lengkap.',
'Cari tahu apa saja yang perlu diketahui tentang %s melalui artikel ini.',
'Pahami berbagai konsep mengenai %s dengan penjelasan yang sederhana dan efektif.',
'Temukan wawasan lengkap mengenai %s yang dapat membantu menambah pengetahuan Anda.',
'Pelajari informasi penting tentang %s dengan pembahasan yang ringan dan mudah dipahami.',
'Artikel ini membantu menjelaskan %s secara lengkap dan tidak berbelit-belit.',
'Temukan berbagai penjelasan mengenai %s yang disusun secara runtut dan jelas.',
'Ketahui lebih banyak tentang %s melalui artikel yang informatif dan bermanfaat.'
];
$template = $desc_arr[
array_rand($desc_arr)
];
$description = sprintf(
$template,
$keyword
);
$description = wp_strip_all_tags(
$description
);
$description = mb_substr(
$description,
0,
155
);
update_post_meta(
$post_id,
'_dj_meta_saved',
$description
);
// Yoast SEO
update_post_meta(
$post_id,
'_yoast_wpseo_metadesc',
$description
);
// Rank Math
update_post_meta(
$post_id,
'rank_math_description',
$description
);
}
/* =====================================================
RESTORE JIKA HILANG
===================================================== */
add_action(
'save_post',
'dj_restore_meta_description',
999
);
function dj_restore_meta_description(
$post_id
){
if (
wp_is_post_revision(
$post_id
)
) {
return;
}
if (
defined('DOING_AUTOSAVE')
&& DOING_AUTOSAVE
) {
return;
}
$saved_desc = get_post_meta(
$post_id,
'_dj_meta_saved',
true
);
if (!$saved_desc) {
return;
}
$yoast_desc = get_post_meta(
$post_id,
'_yoast_wpseo_metadesc',
true
);
$rank_desc = get_post_meta(
$post_id,
'rank_math_description',
true
);
if (empty($yoast_desc)) {
update_post_meta(
$post_id,
'_yoast_wpseo_metadesc',
$saved_desc
);
}
if (empty($rank_desc)) {
update_post_meta(
$post_id,
'rank_math_description',
$saved_desc
);
}
}
function auto_adsense_article($content) {
if (!is_single()) {
return $content;
}
$adsense = '
';
$paragraphs = explode('
', $content);
$count = count($paragraphs);
$new_content = $adsense; // awal
foreach ($paragraphs as $i => $paragraph) {
if (trim($paragraph)) {
$new_content .= $paragraph . '';
if ($i == floor($count / 2)) {
$new_content .= $adsense; // tengah
}
}
}
$new_content .= $adsense; // akhir
return $new_content;
}
add_filter('the_content', 'auto_adsense_article');
/**
* Generate unique slug menggunakan kategori
*/
add_filter('wp_unique_post_slug', 'custom_unique_post_slug', 10, 6);
function custom_unique_post_slug($slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug){
global $wpdb;
// hanya post
if($post_type !== 'post'){
return $slug;
}
$base_slug = sanitize_title($original_slug);
// cek apakah slug sudah dipakai
$exists = $wpdb->get_var($wpdb->prepare(
"SELECT ID
FROM {$wpdb->posts}
WHERE post_name=%s
AND ID!=%d
LIMIT 1",
$base_slug,
$post_ID
));
if(!$exists){
return $base_slug;
}
// ambil kategori pertama
$terms = wp_get_post_categories($post_ID);
if(!empty($terms)){
$cat = get_category($terms[0]);
if($cat && !empty($cat->slug)){
$new_slug = sanitize_title($cat->slug.'-'.$base_slug);
$cek = $wpdb->get_var($wpdb->prepare(
"SELECT ID
FROM {$wpdb->posts}
WHERE post_name=%s
AND ID!=%d
LIMIT 1",
$new_slug,
$post_ID
));
if(!$cek){
return $new_slug;
}
}
}
// fallback jika masih sama
return $base_slug.'-'.time();
}
/* ==========================================================
* DomainJava Auto Watermark
* Otomatis watermark semua gambar upload
* PHP 8.x
* ========================================================== */
add_filter('wp_generate_attachment_metadata', 'dj_auto_watermark', 99, 2);
function dj_auto_watermark($metadata, $attachment_id){
$file = get_attached_file($attachment_id);
if(file_exists($file)){
dj_watermark_image($file);
}
if(!empty($metadata['sizes'])){
foreach($metadata['sizes'] as $size){
$thumb = path_join(dirname($file), $size['file']);
if(file_exists($thumb)){
dj_watermark_image($thumb);
}
}
}
return $metadata;
}
function dj_watermark_image($file){
$info = @getimagesize($file);
if(!$info) return;
switch($info['mime']){
case 'image/jpeg':
$img = imagecreatefromjpeg($file);
break;
case 'image/png':
$img = imagecreatefrompng($file);
imagealphablending($img, true);
imagesavealpha($img, true);
break;
case 'image/webp':
if(function_exists('imagecreatefromwebp')){
$img = imagecreatefromwebp($file);
}else{
return;
}
break;
default:
return;
}
$width = imagesx($img);
$height = imagesy($img);
$text = 'DomainJava.com';
// ukuran otomatis (sekitar 4% lebar gambar)
$fontSize = max(18, intval($width * 0.04));
// lokasi font
$font = WP_CONTENT_DIR.'/uploads/fonts/DejaVuSans-Bold.ttf';
if(!file_exists($font)){
imagedestroy($img);
return;
}
$box = imagettfbbox($fontSize, 0, $font, $text);
$textWidth = abs($box[4] - $box[0]);
$textHeight = abs($box[5] - $box[1]);
$x = ($width - $textWidth) / 2;
$y = ($height + $textHeight) / 2;
// bayangan
$shadow = imagecolorallocatealpha($img, 0, 0, 0, 90);
// putih transparan
$white = imagecolorallocatealpha($img, 255, 255, 255, 70);
imagettftext($img, $fontSize, 0, $x+2, $y+2, $shadow, $font, $text);
imagettftext($img, $fontSize, 0, $x, $y, $white, $font, $text);
switch($info['mime']){
case 'image/jpeg':
imagejpeg($img, $file, 90);
break;
case 'image/png':
imagepng($img, $file, 6);
break;
case 'image/webp':
imagewebp($img, $file, 90);
break;
}
imagedestroy($img);
}
/* ==========================================================
* DomainJava
* Permanent Inline Related Articles
* Berdasarkan Kategori + Fallback Artikel Terbaru
* WordPress 6.x + PHP 8.x
* ========================================================== */
/* ===========================
* BUAT SEKALI SAAT PUBLISH
* =========================== */
add_action('save_post', 'dj_create_related_once', 30);
function dj_create_related_once($post_id){
if (wp_is_post_revision($post_id)) return;
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
if (get_post_type($post_id) != 'post') return;
if (get_post_status($post_id) != 'publish') return;
// Sudah pernah dibuat
if (get_post_meta($post_id, '_dj_related_saved', true))
return;
$categories = wp_get_post_categories($post_id);
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 5,
'post__not_in' => array($post_id),
'ignore_sticky_posts' => true,
'orderby' => 'date',
'order' => 'DESC'
);
if (!empty($categories)) {
$args['category__in'] = $categories;
}
$query = new WP_Query($args);
$posts = $query->posts;
// Jika artikel kategori kurang dari 5
if ($query->post_count < 5) {
$exclude = array($post_id);
foreach ($posts as $p) {
$exclude[] = $p->ID;
}
$args2 = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 5 - count($posts),
'post__not_in' => $exclude,
'ignore_sticky_posts' => true,
'orderby' => 'date',
'order' => 'DESC'
);
$query2 = new WP_Query($args2);
$posts = array_merge($posts, $query2->posts);
}
wp_reset_postdata();
if (empty($posts))
return;
$html = "\n\n";
$html .= '
Bahasa memiliki banyak keunikan yang menarik untuk dipelajari. Salah satu keunikan tersebut adalah kata palindrom. Palindrom sering dianggap sebagai permainan bahasa, tetapi sebenarnya juga memiliki nilai edukatif dan linguistik yang menarik. Kata-kata palindrom dapat ditemukan dalam berbagai bahasa, termasuk bahasa Indonesia, dan sering digunakan untuk melatih logika, ketelitian, serta kreativitas berbahasa.
Dalam kehidupan sehari-hari, mungkin kita pernah menjumpai kata atau kalimat yang tetap sama meskipun dibaca dari depan maupun dari belakang. Fenomena inilah yang disebut palindrom. Meskipun terlihat sederhana, palindrom memiliki daya tarik tersendiri karena tidak semua kata dapat memenuhi syarat tersebut.
Pengertian Palindrom
Secara umum, palindrom adalah kata, frasa, angka, atau kalimat yang jika dibaca dari depan maupun dari belakang tetap sama. Kata “palindrom” sendiri berasal dari bahasa Yunani, yaitu palin yang berarti “kembali” dan dromos yang berarti “arah” atau “jalan”.
ADVERTISEMENT
SCROLL TO RESUME CONTENT
Dalam konteks bahasa, palindrom biasanya digunakan untuk menyebut kata atau kalimat yang memiliki susunan huruf simetris. Artinya, urutan huruf dari awal ke akhir sama persis dengan urutan huruf dari akhir ke awal, tanpa memperhatikan spasi dan tanda baca dalam kasus tertentu.
Palindrom dapat berupa:
Kata tunggal
Gabungan kata
Kalimat lengkap
Angka atau deret angka
Namun, dalam pembahasan ini, fokus utama adalah kata-kata palindrom dalam bahasa Indonesia.
Ciri-Ciri Kata Palindrom
Agar suatu kata dapat disebut sebagai palindrom, kata tersebut harus memenuhi beberapa ciri utama. Ciri pertama adalah kesamaan urutan huruf ketika dibaca dari dua arah. Tidak boleh ada perbedaan huruf, baik dari segi jumlah maupun susunannya.
Ciri kedua adalah tidak bergantung pada makna, melainkan pada bentuk tulisan. Artinya, sebuah kata dapat disebut palindrom meskipun maknanya sederhana atau bahkan tidak memiliki arti khusus dalam percakapan sehari-hari.
Ciri ketiga adalah konsistensi huruf, baik huruf vokal maupun konsonan. Jika satu huruf berubah, maka sifat palindrom akan hilang.
Contoh Kata-Kata Palindrom dalam Bahasa Indonesia
Berikut ini adalah beberapa contoh kata palindrom yang sering digunakan atau dikenal dalam bahasa Indonesia:
Ada Kata “ada” tetap terbaca sama jika dibaca dari depan maupun belakang. Kata ini juga memiliki makna yang jelas, yaitu menyatakan keberadaan.
Ini Kata “ini” merupakan salah satu palindrom paling sederhana dan sering digunakan dalam kalimat sehari-hari.
Apa Kata tanya ini juga termasuk palindrom karena susunan hurufnya simetris.
Katak Kata “katak” menjadi contoh palindrom yang cukup populer karena mudah dikenali dan memiliki makna yang jelas.
Malam Kata “malam” tetap sama jika dibaca terbalik, sehingga termasuk palindrom.
Level Meskipun berasal dari bahasa serapan, kata “level” sering digunakan dalam bahasa Indonesia dan memenuhi syarat sebagai palindrom.
Radar Kata ini sering dijadikan contoh palindrom karena bentuknya yang simetris.
Sos Kata singkat yang tetap sama jika dibaca dari dua arah.
Civic Kata ini juga sering dijadikan contoh palindrom, terutama dalam konteks pembelajaran bahasa.
Refer Kata ini memenuhi pola palindrom dengan susunan huruf yang seimbang.
Kata-kata tersebut menunjukkan bahwa palindrom tidak selalu panjang atau rumit. Kata sederhana pun dapat menjadi palindrom selama memenuhi syarat kesamaan huruf.
Palindrom dalam Bentuk Kalimat
Selain kata tunggal, palindrom juga dapat berupa kalimat. Kalimat palindrom biasanya lebih sulit dibuat karena harus memperhatikan banyak huruf sekaligus. Dalam bahasa Indonesia, contoh kalimat palindrom antara lain:
“Kasur ini rusak”
“Ini ibu budi, budi ubi ini”
Kalimat palindrom sering digunakan sebagai latihan berpikir kreatif dan permainan bahasa karena membutuhkan ketelitian tinggi dalam penyusunan huruf.
Manfaat Mempelajari Kata Palindrom
Mempelajari kata-kata palindrom memiliki beberapa manfaat, terutama dalam bidang pendidikan dan pengembangan kemampuan bahasa. Salah satu manfaat utamanya adalah melatih konsentrasi dan ketelitian. Untuk mengenali atau membuat palindrom, seseorang harus memperhatikan setiap huruf dengan cermat.
Selain itu, palindrom juga dapat meningkatkan kreativitas berbahasa. Dalam proses membuat palindrom, seseorang dituntut untuk berpikir kreatif agar susunan huruf tetap simetris namun tetap membentuk kata atau kalimat yang masuk akal.
Dalam pembelajaran bahasa di sekolah, palindrom sering digunakan sebagai media pembelajaran yang menyenangkan. Siswa dapat belajar tentang huruf, kata, dan struktur bahasa dengan cara yang tidak membosankan.
Palindrom dalam Kehidupan Sehari-Hari
Meskipun terkesan sebagai permainan bahasa, palindrom sebenarnya cukup sering dijumpai dalam kehidupan sehari-hari. Beberapa nama, merek, atau istilah tertentu secara tidak sengaja memiliki sifat palindrom.
Dalam dunia teknologi dan sains, istilah palindrom juga digunakan dalam matematika dan pemrograman komputer. Misalnya, dalam pemrograman, palindrom sering dijadikan contoh soal untuk melatih logika dan algoritma.
Dalam budaya populer, palindrom juga sering muncul dalam bentuk teka-teki, permainan kata, dan kuis bahasa. Hal ini menunjukkan bahwa palindrom tidak hanya bersifat akademis, tetapi juga menghibur.
Tantangan dalam Membuat Kata Palindrom
Meskipun terlihat sederhana, membuat kata atau kalimat palindrom bukanlah hal yang mudah. Tantangan utama terletak pada keterbatasan kosakata dan struktur bahasa. Tidak semua kata dapat diubah menjadi palindrom tanpa mengorbankan makna.
Dalam bahasa Indonesia, tantangan lainnya adalah menjaga agar kata atau kalimat palindrom tetap memiliki makna yang dapat dipahami. Banyak palindrom yang terbentuk hanya sebagai susunan huruf tanpa arti jelas, sehingga kurang efektif digunakan dalam komunikasi.
Namun, justru tantangan inilah yang membuat palindrom menjadi menarik dan menantang untuk dipelajari.
Palindrom sebagai Bagian dari Kekayaan Bahasa
Palindrom merupakan salah satu bukti bahwa bahasa memiliki keunikan dan kekayaan yang luar biasa. Melalui palindrom, kita dapat melihat bagaimana susunan huruf dapat membentuk pola yang simetris dan menarik.
Keberadaan kata-kata palindrom juga menunjukkan bahwa bahasa tidak hanya berfungsi sebagai alat komunikasi, tetapi juga sebagai sarana permainan intelektual dan kreativitas. Dengan mempelajari palindrom, kita dapat lebih menghargai keindahan dan fleksibilitas bahasa.
Penutup
Kata-kata palindrom adalah kata yang memiliki keunikan karena dapat dibaca sama dari depan maupun dari belakang. Contoh kata palindrom dalam bahasa Indonesia antara lain ada, ini, apa, katak, malam, dan radar. Selain kata, palindrom juga dapat berbentuk kalimat yang lebih kompleks.
Mempelajari palindrom memberikan banyak manfaat, mulai dari melatih ketelitian, meningkatkan kreativitas, hingga memperkaya pemahaman bahasa. Oleh karena itu, palindrom tidak hanya layak dipelajari sebagai permainan kata, tetapi juga sebagai bagian dari pembelajaran bahasa yang bermakna.
Dengan memahami dan mengenal kata-kata palindrom, kita dapat semakin mencintai bahasa Indonesia dan menikmati keindahan susunan kata di dalamnya.