' . "\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 .= '
Kelahiran anak merupakan momen bahagia yang dinantikan oleh setiap pasangan. Sebagai umat Islam, kita dianjurkan untuk mendoakan anak yang baru lahir agar mendapatkan keberkahan dan perlindungan dari Allah SWT. Doa ucapan selamat untuk kelahiran anak sebaiknya sesuai dengan sunnah Rasulullah SAW. Berikut ini adalah doa-doa yang dapat kita panjatkan untuk menyambut kelahiran anak.
1. Doa untuk Anak yang Baru Lahir
Doa ini diucapkan oleh orang tua atau kerabat yang menjenguk bayi yang baru lahir.
Barokallohu laka fil mawhubi laka, wa syakartal wohiiba, wa balagho asyuddahu, wa ruziqta birroh.
Artinya:
“Semoga Allah memberkahi anak yang dianugerahkan kepada kamu, semoga kamu bersyukur kepada pemberi, semoga anak ini mencapai kedewasaan, dan semoga kamu diberi keberkahan dengan anak ini.”
3. Doa untuk Perlindungan Anak
Agar anak yang baru lahir terlindung dari godaan setan, orang tua dianjurkan untuk membaca doa berikut:
U’iidzuka bikalimaatillahit taamah, min kulli syaithoonin wa haammah, wa min kulli ‘ainin laammah.
Artinya:
“Aku melindungimu dengan kalimat-kalimat Allah yang sempurna, dari setiap godaan syetan dan bahaya, serta dari setiap mata yang jahat.”
Dengan mengucapkan doa-doa di atas setiap kali anak baru lahir, kita bisa menyampaikan ucapan selamat dan doa perlindungan yang sesuai sunnah Rasulullah SAW. Doa akan menjadi pengikat yang kuat antara orang tua, anak, dan Allah SWT.
Jadi, jawabannya apa? Jawabannya adalah ketika ingin memberikan ucapan selamat atas kelahiran anak, kita dianjurkan untuk mengucapkan doa-doa yang sesuai dengan sunnah Rasulullah SAW seperti yang telah dijelaskan di atas.