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