WordPress Code Snippets
Update: 20-11-2025
Deskripsi: Cara manual mengganti URL slug WordPress author yang biasanya /author menjadi apa saja yang Anda inginkan. Misalnya, /pengguna/username atau /pengguna/@username.
Tipe: PHP
Fungsi: Core
Lokasi: functions.php
Lihat selengkapnya
Cara manual untuk mengganti URL slug WordPress author yang biasanya /author menjadi apa saja yang Anda inginkan. Misalnya, /pengguna/username atau /pengguna/@username. Anda bisa menerapkannya tanpa plugin tambahan.
URL Slug WordPress Author tanpa Tanda “@”
PHPfunction scr_change_author_slug() {
global $wp_rewrite;
$wp_rewrite->author_structure = 'pengguna/%author%';
}
add_action('init', 'scr_change_author_slug', 10);
URL Slug WordPress Author dengan Tanda “@”
PHPfunction scr_change_author_slug() {
global $wp_rewrite;
$wp_rewrite->author_structure = 'pengguna/@%author%';
}
add_action('init', 'scr_change_author_slug', 10);
Update: 06-11-2025
Deskripsi: Menyematkan bendera Indonesia menggunakan elemen SVG pada halaman website. Biasanya ditaruh di footer dengan teks "Develop by Rio Mastri from [bendera]."
Tipe: HTML
Fungsi: Style, Core
Lokasi: Page
Lihat selengkapnya
Menyematkan bendera Indonesia menggunakan elemen SVG pada halaman website. Biasanya ditaruh di footer dengan teks “Develop by Rio Mastri from [bendera].”
HTML<svg xmlns="http://www.w3.org/2000/svg" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" image-rendering="optimizeQuality" fill-rule="evenodd" clip-rule="evenodd" viewBox="0 0 16 11.15" width="16" height="11.15"><g fill-rule="nonzero"><path fill="#fff" stroke="#CCC" stroke-width=".066" stroke-miterlimit="2.613" d="M.908.031h14.184a.88.88 0 0 1 .873.877v9.334a.88.88 0 0 1-.87.877H.901a.88.88 0 0 1-.87-.877V.908c0-.48.397-.877.877-.877z"/><path fill="red" d="M.939.062h14.122c.497-.014.873.38.873.877v4.636H.062V.939c0-.497.376-.891.877-.877"/></g></svg>
Update: 06-11-2025
Deskripsi: Baris JavaScript dan CSS ini berfungsi untuk menambahkan password visibility toggle pada field "Password" Fluent Forms. Dengan begitu, pengguna bisa melihat dan menyembunyikan kata sandi yang akan dibuat. Taruh skrip ini pada JS/CSS Editor milik Fluent Forms. Apabila Anda memilih untuk menggunakan WordPress Dashicons, silakan ganti string menjadi dashicons. Password Visibility Toggle JavaScript Berikut adalah…
Tipe: JavaScript
Fungsi: Style
Lokasi: Other
Lihat selengkapnya
Baris JavaScript dan CSS ini berfungsi untuk menambahkan password visibility toggle pada field “Password” Fluent Forms. Dengan begitu, pengguna bisa melihat dan menyembunyikan kata sandi yang akan dibuat.
Taruh skrip ini pada JS/CSS Editor milik Fluent Forms.
Apabila Anda memilih untuk menggunakan WordPress Dashicons, silakan ganti string menjadi dashicons.
Password Visibility Toggle JavaScript
Berikut adalah kode JS untuk Password visibility toggle Fluent Forms.
JavaScript(function() {
'use strict';
const FORM_SELECTOR = 'form.fluent_form_4';//Sesuaikan "4" dengan form ID Anda
let passIdCounter = 0;
function enhancePasswordField(input) {
if (input.dataset.ffEnhanced) return;
// Pastikan ID memang ada
if (!input.id) input.id = `ff-pass-${++passIdCounter}`;
// Membuat wrapper jika tidak ada
if (!input.closest('.ff-password-wrap')) {
const wrapper = document.createElement('div');
wrapper.className = 'ff-password-wrap';
input.parentNode.insertBefore(wrapper, input);
wrapper.appendChild(input);
}
const wrapper = input.closest('.ff-password-wrap');
// Membuat toggle button
const toggleBtn = document.createElement('button');
Object.assign(toggleBtn, {
type: 'button',
className: 'ff-toggle-pass',
textContent: 'Lihat'
});
toggleBtn.setAttribute('aria-label', 'Lihat kata sandi');
toggleBtn.setAttribute('aria-controls', input.id);
toggleBtn.setAttribute('aria-pressed', 'false');
wrapper.appendChild(toggleBtn);
// Toggle functionality
toggleBtn.addEventListener('click', (e) => {
e.preventDefault();
// Posisi cursor
const { selectionStart, selectionEnd } = input;
// Toggle type
const newType = input.type === 'password' ? 'text' : 'password';
input.type = newType;
// Kembalikan posisi cursor
if (typeof selectionStart === 'number') {
setTimeout(() => {
try { input.setSelectionRange(selectionStart, selectionEnd); } catch(e) {}
});
}
// Ck state setelah toggle
const isNowVisible = input.type === 'text';
toggleBtn.setAttribute('aria-pressed', String(isNowVisible));
if (isNowVisible) {
// Password sedang ditampilkan
toggleBtn.setAttribute('aria-label', 'Sembunyikan kata sandi');
toggleBtn.textContent = 'Sembunyikan';
} else {
// Password sedang disembunyikan
toggleBtn.setAttribute('aria-label', 'Lihat kata sandi');
toggleBtn.textContent = 'Lihat';
}
});
input.dataset.ffEnhanced = 'true';
}
function enhanceAll() {
const form = document.querySelector(FORM_SELECTOR);
if (!form) return;
form.querySelectorAll('input[type="password"]:not([data-ff-enhanced])').forEach(enhancePasswordField);
}
// Initialize
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', enhanceAll);
} else {
enhanceAll();
}
// Handle dynamic content
const form = document.querySelector(FORM_SELECTOR);
if (form && window.MutationObserver) {
new MutationObserver(enhanceAll).observe(form, { childList: true, subtree: true });
}
})();
Kode CSS untuk Password Field Fluent Forms
Kode CSS berikut tidak bersifat absolut. Dalam arti lain, Anda bisa menyesuaikan dengan selera Anda masing-masing.
CSS.fluent_form_4 .ff-password-wrap {
position: relative;
}
.fluent_form_4 .ff-password-wrap .ff-toggle-pass {
position: absolute;
right: 10px;
top: 50%;
transform: translateY(-50%);
background: none;
border: 1px solid transparent;
padding: 4px 8px;
cursor: pointer;
font: inherit;
font-size: 0.875rem;
color: #6b7280;
border-radius: 4px;
transition: all 0.15s ease;
}
.fluent_form_4 .ff-password-wrap .ff-toggle-pass:hover {
color: #374151;
background: rgba(0, 0, 0, 0.05);
}
.fluent_form_4 .ff-password-wrap .ff-toggle-pass:focus-visible {
outline: 2px solid #3b82f6;
outline-offset: 2px;
}
/* Tambahkan padding ke input untuk mencegah overlap */
.fluent_form_4 .ff-password-wrap input {
padding-right: 80px !important;
}
/* Screen reader only */
.fluent_form_4 .sr-only {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0,0,0,0) !important;
white-space: nowrap !important;
border: 0 !important;
}
Update: 06-11-2025
Deskripsi: Dengan menerapkan kode ini, maka editor postingan (bukan page/halaman) akan kembali ke mode classic editor. Nonaktifkan Block Editor untuk Postingan
Tipe: PHP
Fungsi: Core
Lokasi: functions.php
Lihat selengkapnya
Dengan menerapkan kode ini, maka editor postingan (bukan page/halaman) akan kembali ke mode classic editor.
Nonaktifkan Block Editor untuk Postingan
PHPfunction balik_ke_classic_editor($enabled, $post_type) {
return 'post' === $post_type ? false : $enabled;
}
add_filter('use_block_editor_for_post_type', 'balik_ke_classic_editor', 10, 2);
Update: 06-11-2025
Deskripsi: Untuk memastikan semua URL akan memiliki akhiran slash (/) seperti contoh: /blog/. Memaksa Akhiran Slash pada Apache Memaksa Akhiran Slash pada Nginx Sumber: FlyingPress
Tipe: HTML
Fungsi: Security, Core
Lokasi: .htaccess
Lihat selengkapnya
Untuk memastikan semua URL akan memiliki akhiran slash (/) seperti contoh: /blog/.
Memaksa Akhiran Slash pada Apache
HTML<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteCond %{REQUEST_URI} !^/wp-json
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
</IfModule>
Memaksa Akhiran Slash pada Nginx
HTMLif ($request_uri !~ "^/wp-json") {
rewrite ^([^.]*[^/])$ $1/ permanent;
}
Sumber: FlyingPress
Update: 06-11-2025
Deskripsi: Membatasi akses ke halaman admin WordPress. Apabila ada yang mencoba mengaksesnya maka (dalam kasus ini) akan diarahkan ke halaman /blog. Selain itu, ketika meminta perubahan password, maka skrip ini tidak akan dieksekusi.
Tipe: PHP
Fungsi: Security, Core
Lokasi: functions.php
Lihat selengkapnya
Membatasi akses ke halaman admin WordPress. Apabila ada yang mencoba mengaksesnya maka (dalam kasus ini) akan diarahkan ke halaman /blog. Selain itu, ketika meminta perubahan password, maka skrip ini tidak akan dieksekusi.
PHP//Membatasi akses "/wp-admin dan" "/wp-login.php"
add_action('init', 'restrict_access_to_admin');
function restrict_access_to_admin() {
// Cek apakah user sedang mencoba mengakses wp-login.php atau wp-admin
if ((strpos($_SERVER['REQUEST_URI'], '/wp-admin') !== false ||
strpos($_SERVER['REQUEST_URI'], 'wp-login.php') !== false ||
strpos($_SERVER['REQUEST_URI'], '/dashboard') !== false) &&
!is_user_logged_in() &&
!isset($_POST['wp-submit'])) {
if (isset($_GET['action']) && in_array($_GET['action'], array('logout', 'rp', 'resetpass', 'lostpassword'))) {
return;
}
// Pengecualian untuk token reset password (key & login parameters)
if (isset($_GET['key']) && isset($_GET['login'])) {
return;
}
// Pengecualian untuk AJAX requests
if (defined('DOING_AJAX') && DOING_AJAX) {
return;
}
// Redirect ke halaman utama atau halaman login kustom
wp_redirect(home_url('/blog/'));
exit;
}
}
Update: 06-11-2025
Deskripsi:
Tipe: PHP
Fungsi: Style, Core
Lokasi: functions.php
Lihat selengkapnya
PHPadd_filter( 'get_avatar_url', 'ganti_foto_avatar', 10, 3 );
function ganti_foto_avatar( $url, $id_or_email, $args ) {
if ( is_numeric( $id_or_email ) ) {
$user_id = $id_or_email;
} elseif ( is_string( $id_or_email ) && ( $user = get_user_by( 'email', $id_or_email ) ) ) {
$user_id = $user->ID;
} elseif ( is_object( $id_or_email ) && ! empty( $id_or_email->user_id ) ) {
$user_id = (int) $id_or_email->user_id;
}
if ( empty( $user_id ) ) {
return $url;
}
$custom_avatar = rwmb_meta( 'custom_avatar', [ 'object_type' => 'user' ], $user_id );//Sesuaikan 'custom_avatar' dengan ID Single image yang Anda buat.
if ( ! $custom_avatar ) {
return $url;
}
$url = $custom_avatar['full_url'];
return $url;
}
Update: 06-11-2025
Deskripsi: Mengubah judul formulir komentar bawaan WordPress menjadi yang diinginkan. Silakan ganti 'Mari berdiskusi' sesuai keinginan Anda.
Tipe: PHP
Fungsi: Style, Core
Lokasi: functions.php
Lihat selengkapnya
Mengubah judul formulir komentar bawaan WordPress menjadi yang diinginkan. Silakan ganti ‘Mari berdiskusi’ sesuai keinginan Anda.
PHP//Ganti judul komentar
add_filter('comment_form_defaults', 'ganti_judul_komentar', 20);
function ganti_judul_komentar( $defaults ){
$defaults['title_reply'] = __('Mari berdiskusi', 'customizr-child');
return $defaults;
}
Update: 06-11-2025
Deskripsi: Cara menghapus kolom URL atau website pada kolom komentar WordPress.Versi Video => Cara Menyembunyikan Kolom URL pada Komentar WordPress
Tipe: PHP
Fungsi: Security, Core
Lokasi: functions.php
Lihat selengkapnya
Cara menghapus kolom URL atau website pada kolom komentar WordPress.
Versi Video => Cara Menyembunyikan Kolom URL pada Komentar WordPress
PHP//Hapus kolom situs web
add_action( 'after_setup_theme', 'hapus_url_komentar' );
function tu_add_comment_url_filter() {
add_filter( 'comment_form_default_fields', 'hapus_url_komentar', 20 );
}
function hapus_url_komentar($fields) {
unset($fields['url']);
return $fields;
}
Update: 06-11-2025
Deskripsi: Cara menyembunyikan WordPress admin bar untuk pengguna yang memiliki role selain dari Administrator.
Tipe: PHP
Fungsi: Security, Core
Lokasi: functions.php
Lihat selengkapnya
Cara menyembunyikan WordPress admin bar untuk pengguna yang memiliki role selain dari Administrator.
PHPadd_action('after_setup_theme', 'remove_admin_bar_for_non_admin');
function remove_admin_bar_for_non_admin() {
if (!current_user_can('administrator') && !is_admin()) {
show_admin_bar(false);
}
}
Update: 06-11-2025
Deskripsi: Rendering CSS variable pada block editor WordPress untuk GeneratePress/GenerateBlocks
Tipe: PHP
Fungsi: Style, Core
Lokasi: functions.php
Lihat selengkapnya
Rendering CSS variable pada block editor WordPress untuk GeneratePress/GenerateBlocks
PHP//Bikin CCS Variable kebaca di editor
add_filter('generate_editor_styles', function($editor_styles) {
$editor_styles[] = '/style.css';
return $editor_styles;
}, 50);
Update: 06-11-2025
Deskripsi: Cara memindahkan kolom komentar yang secara default berada di bagian atas menjadi berada di bagian paling bawah.
Tipe: PHP
Fungsi: Core
Lokasi: functions.php
Lihat selengkapnya
Cara memindahkan kolom komentar yang secara default berada di bagian atas menjadi berada di bagian paling bawah.
PHP//Mindahin kolom komentar ke bawah
function mindahin_kolom_komentar_ke_bawah( $fields ) {
$comment_field = $fields['comment'];
unset( $fields['comment'] );
$fields['comment'] = $comment_field;
return $fields;
}
add_filter( 'comment_form_fields', 'mindahin_kolom_komentar_ke_bawah');
Update: 06-11-2025
Deskripsi: Skrip ini berfungsi untuk men-disabled atau menonaktifkan wp-block-library dari website.
Tipe: PHP
Fungsi: Core
Lokasi: functions.php
Lihat selengkapnya
Skrip ini berfungsi untuk men-disabled atau menonaktifkan wp-block-library dari website.
PHPfunction hapus_wp_block_library(){
wp_dequeue_style( 'wp-block-library' );
wp_dequeue_style( 'wp-block-library-theme' );
}
add_action( 'wp_enqueue_scripts', 'hapus_wp_block_library', 100 );
Update: 06-11-2025
Deskripsi: Skrip ini berfungsi untuk menonaktifkan meter Power Words pada plugin Rank Math agar tidak muncul pada post editor.
Tipe: PHP
Fungsi: Core
Lokasi: functions.php
Lihat selengkapnya
Skrip ini berfungsi untuk menonaktifkan meter Power Words pada plugin Rank Math agar tidak muncul pada post editor.
PHPadd_filter('rank_math/researches/tests', function ($tests, $type) {
unset($tests['titleHasPowerWords']);
return $tests;
}, 10, 2 );
Update: 06-11-2025
Deskripsi: Skrip ini bertujuan untuk menonaktifkan judul sentimen pada plugin Rank Math agar tidak muncul pada editor postingan. Bagi beberapa orang, meter ini menggangu proses editing post.
Tipe: PHP
Fungsi: Core
Lokasi: functions.php
Lihat selengkapnya
Skrip ini bertujuan untuk menonaktifkan judul sentimen pada plugin Rank Math agar tidak muncul pada editor postingan. Bagi beberapa orang, meter ini menggangu proses editing post.
PHPadd_filter('rank_math/researches/tests', function ($tests, $type) {
unset($tests['titleSentiment']);
return $tests;
}, 10, 2 );
Update: 06-11-2025
Deskripsi: Menonaktifkan parameter AI Rank Math pada editor post.
Tipe: PHP
Fungsi: Core
Lokasi: functions.php
Lihat selengkapnya
Menonaktifkan parameter AI Rank Math pada editor post.
PHPadd_filter('rank_math/researches/tests', function ($tests, $type) {
unset($tests['hasContentAI']);
return $tests;
}, 10, 2);
Update: 06-11-2025
Deskripsi: Cara mengganti logo pada halaman login WordPress default
Tipe: PHP
Fungsi: Core
Lokasi: functions.php
Lihat selengkapnya
Cara mengganti logo pada halaman login WordPress default
PHPfunction ganti_logo_halaman_login() {
// Menggunakan URL gambar langsung
$logo_url = get_custom_logo() ? wp_get_attachment_image_url(get_theme_mod('custom_logo'), 'full') : 'URL_LENGKAP_KE_MEDIA_LOGO';
?>
body.login div#login h1 a {
background-image: url();
background-size: contain;
width: 100%;
height: 80px; /* Sesuaikan tinggi logo */
}
<?php
}
add_action( 'login_enqueue_scripts', 'ganti_logo_halaman_login' );
Update: 06-11-2025
Deskripsi: Mengganti teks "Search Results for" menjadi "Hasil pencarian untuk" pada tema GeneratePress
Tipe: PHP
Fungsi: Core
Lokasi: functions.php
Lihat selengkapnya
Mengganti teks “Search Results for” menjadi “Hasil pencarian untuk” pada tema GeneratePress
PHPfunction judul_hasil_pencarian( $items) {
if ( is_search() ) {
$items = str_replace( "Search Results for", "Hasil pencarian untuk", $items );
}
return $items;
}
add_filter( 'generate_search_title_output', 'judul_hasil_pencarian', 9999, 2 );
Update: 06-11-2025
Deskripsi: Membatasi jumlah karakter judul pada halaman depan dan halaman arsip postingan.
Tipe: PHP
Fungsi: Core
Lokasi: functions.php
Lihat selengkapnya
Membatasi jumlah karakter judul pada halaman depan dan halaman arsip postingan.
PHPfunction jumlah_karakter_judul( $title ) {
// Cek apakah ini halaman archive atau frontpage
if ( is_archive() || is_front_page() ) {
// Tentukan panjang maksimal judul
$max_length = 60;
// Cek apakah panjang judul lebih dari batas maksimal
if ( strlen( $title ) > $max_length ) {
// Batasi jumlah karakter judul dan tambahkan …
$newTitle = substr( $title, 0, $max_length );
return $newTitle . " …";
}
}
return $title; // Jika bukan halaman archive atau frontpage, kembalikan judul seperti biasa
}
add_filter( 'the_title', 'jumlah_karakter_judul', 10, 1 );