' . "\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 .= '
Cancer adalah zodiak yang lahir antara 21 Juni – 22 Juli, dilambangkan dengan kepiting 🦀. Cancer dikenal sebagai pribadi yang sensitif, intuitif, setia, dan sangat menjunjung tinggi perasaan dan hubungan interpersonal. Sebagai zodiak air, perasaan kamu sering dipengaruhi oleh suasana sekeliling, hubungan orang‑orang terdekat, dan energi emosional yang terjadi di lingkunganmu.
Ramalan zodiak Cancer hari ini memberi gambaran tentang kemungkinan energi yang akan kamu rasakan, tantangan yang mungkin muncul, dan kesempatan yang bisa diperoleh. Ramalan ini bukanlah kepastian absolut, tetapi panduan inspiratif yang bisa kamu gunakan sebagai referensi dalam mengambil keputusan.
1. Energi Umum Hari Ini (Cancer)
Hari ini, energi kamu akan sangat dipengaruhi oleh intuisi dan perasaan batin. Kamu mungkin merasa lebih sensitif terhadap perubahan suasana di sekitar, termasuk dinamika interpersonal dengan orang yang kamu sayangi — keluarga, pasangan, atau sahabat.
ADVERTISEMENT
SCROLL TO RESUME CONTENT
Kamu cenderung lebih reflektif dan memikirkan hal‑hal yang menyentuh hati, seperti kenangan lama, hubungan yang belum selesai, atau rencana masa depan yang membutuhkankestabilan emosi. Cancer sering kali merasakan “getaran tak terlihat” yang diabaikan oleh tanda zodiak lain, sehingga hari ini adalah waktu yang baik untuk mendengarkan perasaanmu sendiri terlebih dahulu sebelum bereaksi.
Kunci utama hari ini adalah kesadaran diri dan empati — baik terhadap dirimu maupun orang lain. Biarkan intuisi memandumu, namun tetap berpijak pada logika ketika membuat keputusan besar.
2. Ramalan Cinta dan Hubungan (Cancer)
Untuk yang Single
Bagi Cancer yang belum berpasangan, hari ini adalah waktu di mana tafsir perasaan jadi lebih tajam. Kamu mungkin merasakan ketertarikan yang tiba‑tiba terhadap seseorang yang selama ini biasa saja. Perhatikan terutama komunikasi non‑verbal — bahasa tubuh dan cara dia menatapmu bisa memberi petunjuk lebih banyak daripada kata‑kata.
Namun, jangan tergesa‑gesa memulai hubungan baru hanya karena kamu merasa nyaman. Cancer cenderung terikat secara emosional — hal yang bagus — tetapi penting untuk memastikan bahwa orang yang kamu sukai benar‑benar memahami nilai emosionalmu. Hindari hubungan yang hanya berdasarkan kesenangan sesaat.
Saran hari ini: 💡 Bangun koneksi dengan cara mengenal orang tersebut lebih dalam sebelum membuat komitmen emosional.
Untuk yang Berpasangan
Dalam hubungan, konflik kecil bisa muncul terutama dari perbedaan cara mengungkapkan kasih sayang. Kamu mungkin merasa pasangan tidak cukup responsif secara emosional, sedangkan pasangan mungkin merasa kamu terlalu sensitif atau cepat tersinggung.
Komunikasi adalah kunci. Alih‑alih menyimpan perasaan yang kamu rasakan, cobalah mengungkapkannya dengan cara yang lembut dan jelas. Cancer memiliki kelebihan dalam memahami perasaan orang lain, jadi gunakan kemampuan itu untuk berkata yang membuat hati merasa aman.
Saran hari ini: ❤️ Pilih waktu yang tenang untuk bicara dari hati ke hati. Kejujuran akan memperkuat ikatan.
3. Ramalan Karier dan Pekerjaan
Bagian pekerjaan hari ini dipengaruhi oleh kreativitas dan intuisi, bukan sekadar logika semata. Kamu mungkin menemukan ide‑ide baru yang tidak terduga — solusi yang muncul tanpa kamu duga, atau cara kerja yang lebih nyaman tapi efektif.
Namun, energi emosional yang kuat bisa membuatmu merasa lebih mudah teralihkan atau kurang fokus. Jika pekerjaan menuntut ketelitian, sebaiknya buatlah daftar prioritas agar kamu tidak kehilangan jejak tugas yang mendesak.
Jika kamu bekerja dalam tim
Relasi tim bisa menjadi sumber inspirasi atau friksi. Cancer cenderung peka terhadap dinamika kelompok, sehingga kamu dapat membaca suasana lebih cepat daripada orang lain. Gunakan kepekaan ini untuk menjadi penengah yang bijak, bukan hanya pengamat.
Jika kamu bekerja sendiri
Hari ini bagus untuk melakukan evaluasi pribadi — apakah pekerjaan yang kamu pilih masih sesuai dengan aspirasi batinmu? Jangan ragu menulis ide‑ide besar yang muncul, karena ide sederhana hari ini bisa berkembang menjadi proyek yang berarti di masa depan.
Saran hari ini: 📌 Buat skenario prioritas dan jangan takut bertanya jika kamu membutuhkan klarifikasi tugas.
4. Ramalan Keuangan dan Rezeki
Dalam hal keuangan, hari ini kamu mungkin merasa ingin lebih hati‑hati dan terencana. Insting Cancer biasanya membuatmu berpikir panjang sebelum mengeluarkan uang, terutama untuk hal‑hal yang bersifat emosional atau konsumtif.
Energi hari ini menyarankan: 💰 Prioritaskan kebutuhan utama, lalu alokasikan sebagian untuk tabungan atau investasi kecil.
Cancer sering kali sangat peduli pada keamanan finansial jangka panjang. Jika kamu sedang mempertimbangkan keputusan finansial besar — seperti investasi, pinjaman, atau biaya besar lainnya — mulailah dengan melakukan riset lengkap dan mintalah nasehat dari orang yang kamu percayai.
Keberuntungan finansialmu tidak dipengaruhi oleh hal besar hari ini, melainkan oleh perencanaan kecil yang konsisten.
5. Ramalan Kesehatan dan Kesejahteraan
Kesehatan Cancer hari ini menuntut perhatian terhadap kebutuhan emosional tubuhmu. Kamu mungkin merasa mudah lelah jika stres emosional terlalu tinggi. Gejala seperti kepala tegang, perut tidak nyaman, atau kelelahan bisa muncul jika kamu terlalu menekan perasaan.
🎯 Tips kesehatan hari ini:
Cukup tidur (jangan lewatkan jam vital istirahat tubuh).
Berjalan santai atau yoga ringan untuk menenangkan pikiran.
Jurnal atau meditasi dapat membantu melepaskan energi emosional yang menumpuk.
Makan makanan kaya serat dan protein untuk memberi bahan bakar tubuh yang stabil.
Cancer cenderung menyimpan stres dalam tubuh fisik, jadi memberi waktu untuk relaksasi adalah bagian penting dari kesehatanmu hari ini.
6. Energi Spiritual dan Batin
Sebagai zodiak air, Cancer sering kali merasakan getaran spiritual yang lebih intens dibanding zodiak lain. Hari ini adalah waktu yang baik untuk merenung, bermeditasi, atau berdoa. Kamu mungkin merasakan kehadiran ide‑ide intuitif atau hunch yang kuat — dengarkanlah itu, karena kadang intuisi Cancer lebih cepat dan lebih dalam daripada logika.
Berikut rekomendasi spiritual hari ini: ✨ Luangkan waktu 15–30 menit untuk meditasi pagi atau sore. ✨ Tulis perasaanmu dalam jurnal — jangan ragu mengatakan apa yang benar‑benar kamu rasakan. ✨ Gunakan aromaterapi atau musik tenang untuk menyeimbangkan energi dalam diri.
7. Lucky Numbers, Warna, dan Saran Simbolis
Banyak penggemar zodiak juga tertarik pada elemen simbolis yang menyertainya, seperti angka keberuntungan, warna, atau kristal yang mendukung energi hari ini.
Lucky Numbers (Angka Keberuntungan)
☀️ 4, 7, 11, 22, 29
Warna Keberuntungan
🎨 Biru laut, putih mutiara, perak — warna‑warna ini membantu menenangkan emosi dan memberi rasa stabil.
Kristal / Batu yang Mendukung Energi Hari Ini
🔹 Moonstone — meningkatkan intuisi 🔹 Aquamarine — menenangkan perasaan 🔹 Rose Quartz — membuka hati dan meningkatkan cinta kasih
Gunakan elemen ini sebagai permulaan ritual kecil setiap hari — seperti memakai gelang, menulis angka keberuntungan pada buku harian, atau memilih pakaian dengan warna keberuntungan.
8. Kecocokan (Compatibilities) Hari Ini
Cancer & Taurus
Keduanya menghargai stabilitas dan kenyamanan rumah, sehingga interaksi hari ini bisa damai dan mendukung.
Cancer & Scorpio
Sama‑sama emosional dan inten, hubungan ini akan kuat secara batin dan dapat saling memahami secara mendalam.
Cancer & Libra
Hari ini hubungan bisa harmonis jika kedua pihak bersedia mendengar kebutuhan emosional satu sama lain.
9. Pelajaran Penting dari Energi Hari Ini
🎓 Pelajaran utama untuk Cancer hari ini:
Perasaan bukanlah kelemahan
Intuisi adalah alat navigasi penting
Komunikasi jujur memperkuat hubungan
Rencana kecil sering membawa hasil besar
Cancer akan berkembang saat kamu belajar menyeimbangkan kepedulian emosional dengan keputusan yang rasional. Kadang, memberi jarak sejenak untuk menyusun pikiran bisa bekerja jauh lebih efektif daripada bereaksi spontan.