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 Menonaktifkan AMP Pada Wordpress Tanpa Mempengaruhi SEO

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

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

6. Menonaktifkan Emojis

/**
 * Disable the emoji's
 */
function disable_emojis() {
 remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
 remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
 remove_action( 'wp_print_styles', 'print_emoji_styles' );
 remove_action( 'admin_print_styles', 'print_emoji_styles' ); 
 remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
 remove_filter( 'comment_text_rss', 'wp_staticize_emoji' ); 
 remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
 add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
 add_filter( 'wp_resource_hints', 'disable_emojis_remove_dns_prefetch', 10, 2 );
}
add_action( 'init', 'disable_emojis' );

/**
 * Filter function used to remove the tinymce emoji plugin.
 * 
 * @param array $plugins 
 * @return array Difference betwen the two arrays
 */
function disable_emojis_tinymce( $plugins ) {
 if ( is_array( $plugins ) ) {
 return array_diff( $plugins, array( 'wpemoji' ) );
 } else {
 return array();
 }
}

/**
 * Remove emoji CDN hostname from DNS prefetching hints.
 *
 * @param array $urls URLs to print for resource hints.
 * @param string $relation_type The relation type the URLs are printed for.
 * @return array Difference betwen the two arrays.
 */
function disable_emojis_remove_dns_prefetch( $urls, $relation_type ) {
 if ( 'dns-prefetch' == $relation_type ) {
 /** This filter is documented in wp-includes/formatting.php */
 $emoji_svg_url = apply_filters( 'emoji_svg_url', 'https://s.w.org/images/core/emoji/2/svg/' );

$urls = array_diff( $urls, array( $emoji_svg_url ) );
 }

return $urls;
}

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

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

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:  Blokir Komentar Spam Wordpress Dengan Rule Cloudflare

18. Mencegah Copy Paste

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

/**
 * 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 ini akan terus diperbaharui jika ada Code Snippets WordPress lain, semoga membantu.

Tinggalkan Komentar

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