WordPress Code Snippets

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: Security

Fungsi: PHP

Lokasi: functions.php

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;
    }
}

Deskripsi: Mengubah gambar avatar WordPress tanpa melalui Gravatar menggunakan Meta Box AIO. Anda harus membuat sebuah custom field dan pilih Single image. Lalu pastikan lokasinya di User. Versi video Cara Mengganti Foto Avatar WordPress dengan Meta Box AIO

Tipe: Style

Fungsi: PHP

Lokasi: functions.php

PHP
add_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;
}

Deskripsi: Mengubah judul formulir komentar bawaan WordPress menjadi yang diinginkan. Silakan ganti 'Mari berdiskusi' sesuai keinginan Anda.

Tipe: Core

Fungsi: PHP

Lokasi: functions.php

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;
}

Deskripsi: Menghapus kolom URL atau website pada kolom komentar WordPress.
Versi Video => Cara Menyembunyikan Kolom URL pada Komentar WordPress

Tipe: Core

Fungsi: PHP

Lokasi: functions.php

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;
}

Deskripsi: Menyembunyikan WordPress admin bar untuk pengguna yang memiliki role selain dari Administrator

Tipe: Core

Fungsi: PHP

Lokasi: functions.php

PHP
add_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);
    }
}

Deskripsi: Rendering CSS variable pada block editor WordPress untuk GeneratePress/GenerateBlocks

Tipe: Style

Fungsi: PHP

Lokasi: functions.php

PHP
//Bikin CCS Variable kebaca di editor
add_filter('generate_editor_styles', function($editor_styles) {
    $editor_styles[] = '/style.css';
    return $editor_styles;
}, 50);

Deskripsi: Memindahkan kolom komentar dari atas ke bagian paling bawah.

Tipe: Core

Fungsi: PHP

Lokasi: functions.php

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');

Deskripsi: Menghapus script wp-block-library dan wp-block-library-theme pada frontend.

Tipe: Performance

Fungsi: PHP

Lokasi: functions.php

PHP
function 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 );

Deskripsi: Menonaktifkan parameter power words plugin Rank Math pada editor post

Tipe: Performance

Fungsi: PHP

Lokasi: functions.php

PHP
add_filter('rank_math/researches/tests', function ($tests, $type) {
	unset($tests['titleHasPowerWords']);
	return $tests;
}, 10, 2 );

Deskripsi: Menonaktifkan parameter kata sentimen plugin Rank Math pada judul postingan di editor post.

Tipe: Performance

Fungsi: PHP

Lokasi: functions.php

PHP
add_filter('rank_math/researches/tests', function ($tests, $type) {
	unset($tests['titleSentiment']);
	return $tests;
}, 10, 2 );

Deskripsi: Menonaktifkan parameter AI Rank Math pada editor post.

Tipe: Performance

Fungsi: PHP

Lokasi: functions.php

PHP
add_filter('rank_math/researches/tests', function ($tests, $type) {
	unset($tests['hasContentAI']);
	return $tests;
}, 10, 2);

Deskripsi: Mengganti logo pada halaman login WordPress default

Tipe: Style

Fungsi: PHP

Lokasi: functions.php

PHP
function 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' );

Deskripsi: Mengganti teks "Search Results for" menjadi "Hasil pencarian untuk" pada tema GeneratePress

Tipe: Style

Fungsi: PHP

Lokasi: functions.php

PHP
function 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 );

Deskripsi: Membatasi jumlah karakter judul pada halaman depan dan halaman arsip postingan.

Tipe: Core

Fungsi: PHP

Lokasi: functions.php

PHP
function 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 );