Kumpulan Code Snippets WordPress Untuk Optimasi Situs

Code Snippets WordPress adalah sedikit kode php yang bisa Kamu pakai untuk menambah atau mengurangi fungsi yang ada pada situs WordPress.

Code Snippets biasanya digunakan untuk mengurangi atau menambah fitur, guna mengoptimasi performa pada situs WordPress agar mendapatkan hasil terbaik.

Code snippets bisa Kamu tambahkan dengan mudah pada bagian bawah fail function.php, namun hal ini tidak disarankan, karena code snippets akan hilang jika Kamu melakukan pembaharuan theme.

Saran saya adalah menambahkan code snippets dengan menggunakan plugin Code Snippets dari developer Code Snippets Pro, maka Kamu tidak perlu khawatir kehilangan kode ini lagi ketika pembaharuan.

Screenshot 49
Plugin Code Snippets

Code Snippets WordPress

Berikut code Snippets WordPress yang mungkin berguna untuk memaksimalkan kebutuhan blogging Kamu.

Jangan dipakai semua, sesuaikan fungsi kode dengan kebutuhan Kamu ya!

1. Menghilangkan Tag Pada Post

Jika Kamu tidak memakai tags pada pos, maka Kamu tidak memerlukan box tags pada saat membuat pos, maka dengan kode ini Kamu bisa menghilangkan box tags.

code snippets wordpress
Box tags
add_action('init', function(){
    register_taxonomy('post_tag', []);
});

2. Menghilangkan JQuery & JQuery Migrate

Menghilangkan JQuery:

/** * Completely Remove jQuery From WordPress */
function my_init() {
    if (!is_admin()) {
        wp_deregister_script('jquery');
        wp_register_script('jquery', false);
    }
}
add_action('init', 'my_init');

Menghilangkan JQuery Migrate:

function remove_jquery_migrate( $scripts ) {
	
	if ( ! is_admin() && isset( $scripts->registered['jquery'] ) ) {
			
		$script = $scripts->registered['jquery'];
		
		if ( $script->deps ) { 
			$script->deps = array_diff( $script->deps, array( 'jquery-migrate' ) );
		}
	}
}
add_action( 'wp_default_scripts', 'remove_jquery_migrate' );

Jika Kamu tetap ingin menggunakan JQuery tapi tidak ingin berada pada lokal wordpress, Kamu bisa memuat JQuery dari CDN Google dengan menambahkan skrip berikut pada bagian header:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

3. Menonaktifkan XML-RPC

Ini adalah fitu untuk akses remote situs wordpress, fitur ini bisa sangat membantu tapi juga bisa membahayakan keamanan situs wordpress Kamu.

Baca juga:  Cara Setting WP Fastest Cache Dengan Cloudflare

Untuk menonaktifkan XML-RPC, Kamu bisa menggunakan code snippets ini:

add_filter('xmlrpc_enabled', '__return_false');

4. Menonaktifkan Embeds

Fitur embeds biasanya digunakan untuk menyematkan konten dari situs lain, contohya seperti menambahkan video youtube dan audio dari soundcloud.

Jika Kamu tidak berniat menambahkan konten dari situs lain pada blog wordpress Kamu, maka bisa menonaktifkan embeds dengan kode berikut ini:

function disable_embeds_code_init() {

 // Remove the REST API endpoint.
 remove_action( 'rest_api_init', 'wp_oembed_register_route' );

 // Turn off oEmbed auto discovery.
 add_filter( 'embed_oembed_discover', '__return_false' );

 // Don't filter oEmbed results.
 remove_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10 );

 // Remove oEmbed discovery links.
 remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );

 // Remove oEmbed-specific JavaScript from the front-end and back-end.
 remove_action( 'wp_head', 'wp_oembed_add_host_js' );
 add_filter( 'tiny_mce_plugins', 'disable_embeds_tiny_mce_plugin' );

 // Remove all embeds rewrite rules.
 add_filter( 'rewrite_rules_array', 'disable_embeds_rewrites' );

 // Remove filter of the oEmbed result before any HTTP requests are made.
 remove_filter( 'pre_oembed_result', 'wp_filter_pre_oembed_result', 10 );
}

add_action( 'init', 'disable_embeds_code_init', 9999 );

function disable_embeds_tiny_mce_plugin($plugins) {
    return array_diff($plugins, array('wpembed'));
}

function disable_embeds_rewrites($rules) {
    foreach($rules as $rule => $rewrite) {
        if(false !== strpos($rewrite, 'embed=true')) {
            unset($rules[$rule]);
        }
    }
    return $rules;
}
function my_deregister_scripts(){
wp_deregister_script( 'wp-embed' );
}
add_action( 'wp_footer', 'my_deregister_scripts' );

5. Menonaktifkan Dashicons

File dashicons.min.css tidak diperlukan oleh pengujung situs, maka disarankan menggunakan kode ini untuk menghilangkan Dashicons WordPress pada front end.

add_action( 'wp_enqueue_scripts', 'dequeue_dashicon' );
function dequeue_dashicon() {
    if ( current_user_can( 'update_core' ) ) {
        return;
    }
    wp_deregister_style( 'dashicons' );
}

6. Menonaktifkan Emojis

Banyak dari Kita yang tidak menggunakan emojis pada laman situs, kalau Kamu juga tidak menggunakan emojis, maka gunakan kode ini:

// Remove Emoji Styles and Scripts
remove_action('wp_head', 'print_emoji_detection_script', 7); // Remove Emoji's Styles and Scripts.
remove_action('embeded_head', 'print_emoji_detection_script');
remove_action('admin_print_scripts', 'print_emoji_detection_script'); // Remove Emoji's Styles and Scripts.
remove_action('wp_print_styles', 'print_emoji_styles'); // Remove Emoji's Styles and Scripts.
remove_action('admin_print_styles', 'print_emoji_styles'); // Remove Emoji's Styles and Scripts.
remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
remove_filter('the_content_feed', 'wp_staticize_emoji');
remove_filter('comment_text_rss', 'wp_staticize_emoji');
add_filter('tiny_mce_plugins', 'disable_emojicons_tinymce');
add_filter('emoji_svg_url', '__return_false');

function disable_emojicons_tinymce($plugins)
{
    if (is_array($plugins)) {
        return array_diff($plugins, array('wpemoji'));
    } else {
        return array();
    }
}

7. Menyembunyikan Versi WordPress

Kode ini berfungsi untuk menyembunyikan nomor versi pada wordpress, misalnya WordPress Version 5.7.2 maka angka tersebut akan hilang.

function wpb_remove_version() { 
    return ''; 
} 
add_filter('the_generator', 'wpb_remove_version');

8. Menghilangkan WLWManifest Link

remove_action('wp_head', 'wlwmanifest_link');

9. Menghilangkan RSD Link

remove_action('wp_head', 'rsd_link');

10. Menghilangkan Shortlink

remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );

11. Menonaktifkan RSS feeds dan RSS Link

Para pencuri konten yang menggunakan AGC biasanya menggunakan feed untuk mengambil konten pada situs kita, maka Saya nonaktifkan fitur ini.

function disable_feed() {
 wp_die( __( 'This site does not have a feed, visit the <a href="'. esc_url( home_url( '/' ) ) .'">home page</a>!' ) );
}
add_action('do_feed', 'disable_feed', 1);
add_action('do_feed_rdf', 'disable_feed', 1);
add_action('do_feed_rss', 'disable_feed', 1);
add_action('do_feed_rss2', 'disable_feed', 1);
add_action('do_feed_atom', 'disable_feed', 1);
add_action('do_feed_rss2_comments', 'disable_feed', 1);
add_action('do_feed_atom_comments', 'disable_feed', 1);
remove_action( 'wp_head', 'feed_links_extra', 3 );
remove_action( 'wp_head', 'feed_links', 2 );

12. Menonaktifkan Self Ping

// prevent self-pings
function shapeSpace_prevent_self_pings(&$links) {
	
	$home = get_option('home');
	
	foreach ($links as $l => $link) {
		
		if (0 === strpos($link, $home)) unset($links[$l]);
		
	}
	
}
add_action('pre_ping', 'shapeSpace_prevent_self_pings');

13. Menonaktifkan Rest API dan Rest API Link

add_filter(
	'rest_authentication_errors',
	function ( $access ) {
		return new WP_Error(
			'rest_disabled',
			__( 'The WordPress REST API has been disabled.' ),
			array(
				'status' => rest_authorization_required_code(),
			)
		);
	}
);

14. Menonaktifkan Komentar

Jika Situsmu tidak membutuhkan komentar, maka bisa menggunakan kode kecil ini.

add_action('admin_init', function () {
    // Redirect any user trying to access comments page
    global $pagenow;
    
    if ($pagenow === 'edit-comments.php') {
        wp_safe_redirect(admin_url());
        exit;
    }

    // Remove comments metabox from dashboard
    remove_meta_box('dashboard_recent_comments', 'dashboard', 'normal');

    // Disable support for comments and trackbacks in post types
    foreach (get_post_types() as $post_type) {
        if (post_type_supports($post_type, 'comments')) {
            remove_post_type_support($post_type, 'comments');
            remove_post_type_support($post_type, 'trackbacks');
        }
    }
});

// Close comments on the front-end
add_filter('comments_open', '__return_false', 20, 2);
add_filter('pings_open', '__return_false', 20, 2);

// Hide existing comments
add_filter('comments_array', '__return_empty_array', 10, 2);

// Remove comments page in menu
add_action('admin_menu', function () {
    remove_menu_page('edit-comments.php');
});

// Remove comments links from admin bar
add_action('init', function () {
    if (is_admin_bar_showing()) {
        remove_action('admin_bar_menu', 'wp_admin_bar_comments_menu', 60);
    }
});

15. Menghapus Global Styles

remove_action( 'wp_enqueue_scripts', 'wp_enqueue_global_styles' );
remove_action( 'wp_body_open', 'wp_global_styles_render_svg_filters' );

16. Menonaktifkan Heartbeat

add_action( 'init', 'stop_heartbeat', 1 );
function stop_heartbeat() {
wp_deregister_script('heartbeat');
}

17. Membatasi Revisi Pos

define('WP_POST_REVISIONS', 3);

Ubah angka 3 sesuai dengan jumlah maksimal revisi yang Kamu inginkan pada konten jenis pos.

Baca juga:  Pengaturan WP Rocket Dengan Astra Theme Kebut Maksimal

18. Mencegah Copy Paste

Digunakan untuk mencegah klik kanan kopas dari bocil lato-lato pencuri konten.

document.addEventListener("contextmenu", (evt) => {
evt.preventDefault();
}, false);
document.addEventListener("copy", (evt) => {
evt.clipboardData.setData("text/plain", "Dilarang kopas coy");
evt.preventDefault();
}, false);

19. Menonaktifkan Gutenberg Editor

Kode ini berfungsi untuk menggunakan kembali editor klasik dan menonaktifkan Gutenberg.

add_filter('gutenberg_can_edit_post', '__return_false', 5);
add_filter('use_block_editor_for_post', '__return_false', 5);

20. Mengatur Minimal Kata Pada Pos/Artikel

Digunakan untuk memaksa penulis untuk menulis artikel dengan minimal kata yang diatur, contohnya pada kode dibawah ini menggunakan minimal 600 kata.

/**
 * Mencegah pos dibawah minimal kata.
 *
 * @param int     $post_id The id of the post.
 * @param WP_Post $post The post object.
 *
 * @return void
 */
function wpcode_snippet_publish_min_words( $post_id, $post ) {
	// Atur kode dibawah sesuai dengan minimal kata yang kamu inginkan.
	$word_count = 600;
	if ( str_word_count( $post->post_content ) < $word_count ) {
		wp_die(
			sprintf(
				// Translators: placeholder adds the minimum number of words.
				esc_html__( 'Artikel kurang dari %d kata. Mohon tambahkan lagi.' ),
				absint( $word_count )
			)
		);
	}
}
add_action( 'publish_post', 'wpcode_snippet_publish_min_words', 9, 2 );

21. Menghapus Kolom Link/Website Pada Komentar

Penggunaan kolom link/website pada komentar mengundang banyak bot spam dan pengunjung yang hanya ingin menyisipkan link lewat komentar saja. Maka sekarang komentar pada situs ini hanya menggunakan nama dan email saja.

/**
 * Disable url link in comment
 */
add_filter( 'astra_comment_form_default_fields_markup', 'wplogout_remove_comment_website_field', 20 );

function wplogout_remove_comment_website_field( $fields ) {
	unset( $fields['url'] );
	
	return $fields;
}

Catatan

Artikel akan terus diperbaharui jika ada Code Snippets WordPress lain, semoga membantu :D.

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *