Kumpulan WordPress Code Snippets
WordPress Code Snippets adalah kode singkat yang mampu melakukan perubahan pada fitur (penambahan, pengurangan, penggantian, dll) tanpa menggunakan plugin.
Dengan code snippets, Anda hanya perlu menambahkan code yang diperlukan ke functions.php atau single.php tema wordpress yang Anda gunakan.
Berikut ini kumpulan wordpress code snippets yang bisa di implementasikan ke situs web atau blog Anda.
1. Hapus Query String CSS dan JS
Script dibawah ini akan menghapus query string versi yang ada pada Javascript dan CSS wordpress Anda, misalnya .css?ver=3.4.5 maka setelah script ini diterapkan menjadi ?ver=3.4.5.
function wcs_remove_script_styles_version( $src ){
return remove_query_arg( ‘ver’, $src );
}
add_filter( ‘script_loader_src’, ‘wcs_remove_script_styles_version’ );
add_filter( ‘style_loader_src’, ‘wcs_remove_script_styles_version’ );
2. Nonaktifkan Emoji
Menonaktifkan atau disable emoji default wordpress adalah salah satu cara mempercepat load halaman.
function wpcs_remove_emojicons() {
// Nonaktifkan emoji dari Feed and RSS
remove_filter( ‘the_content_feed’, ‘wp_staticize_emoji’ );
remove_filter( ‘comment_text_rss’, ‘wp_staticize_emoji’ );
// Nonaktifkan emoji dari Emails
remove_filter( ‘wp_mail’, ‘wp_staticize_emoji_for_email’ );
// Nonaktifkan emoji dari Head Tag
remove_action( ‘wp_head’, ‘print_emoji_detection_script’, 7 );
// Nonaktifkan emoji dari Styling
remove_action( ‘wp_print_styles’, ‘print_emoji_styles’ );
// Nonaktifkan emoji dari Dasbor Admin
remove_action( ‘admin_print_scripts’, ‘print_emoji_detection_script’ );
remove_action( ‘admin_print_styles’, ‘print_emoji_styles’ );
}
add_action( ‘init’, ‘wpcs_remove_emojicons’ );
3. Menyembunyikan Halaman dari Pencarian
Script ini akan menyembunyikan semua halaman dari pencarian wordpress (misalnya: Privacy Policy, Terms of Service, Disclaimer, About, Contact, dll).
function wcs_search_from_posts( $query ) {
if ( $query->is_search && !is_admin() ) {
$query->set( ‘post_type’, ‘post’ );
}
return $query;
}
add_filter( ‘pre_get_posts’, ‘wcs_search_from_posts’ );
4. Hapus Meta Tag Generator WordPress
Script ini untuk menghapus meta tag generator yang dibuat oleh wordpress secara default.
function wcs_remove_generator_tag() {
return ”;
}
add_filter( ‘the_generator’, ‘wcs_remove_generator_tag’ );
5. Ubah Permalink Pencarian
Script ini akan merubah URL pencarian default wordpress yang defaultnya ?s= menjadi /search/ yang membuat permalink lebih sederhana dan SEO frindly.
function wpcs_search_url_rewrite_rule() {
if ( is_search() && !empty( $_GET[‘s’] ) ) {
wp_redirect( home_url( ‘/search/’ ) . urlencode( get_query_var( ‘s’ ) ) );
exit();
}
}
add_action( ‘template_redirect’, ‘wpcs_search_url_rewrite_rule’ );
6. Ubah Sparator Title
Script ini dapat Anda gunakan jika ingin mengganti sparator atau pemisah judul post/halaman dengan title blog.
PS: Jangan gunakan script ini apabila Anda sudah menggunakan Plugin SEO seperti Yoast, All-in-One SEO, atau lainnya yang sudah dilengkapi fitur serupa dengan script ini.
function wpcs_change_wp_title_separator( $title, $sep ) {
// Sparator Baru
$sep = ‘-‘;
// Tetapkan judul baru dengan pemisah
$title = str_replace( ‘|’, $sep, $title );
return $title;
}
add_filter( ‘wp_title’, ‘wpcs_change_wp_title_separator’, 10, 2 );
7. Membuat Link Share Tanpa Plugin
Kebanyakan plugin social share yang ada di direktori wordpress menggunakan javascript yang membuat load halaman lebih berat. Jika Anda merasa tidak ingin menggunakan plugin, Anda bisa membuatnya secara manual dengan script dibawah ini.
Letakkan script ini di single.php tema Anda.
<p class="center">
<a href="http://twitter.com/intent/tweet/?text=<?php echo esc_html( get_the_title() ); ?>&url=<?php echo esc_url( get_the_permalink() ); ?>" class="twitter" target="_blank">Twitter</a>
<a href="http://www.facebook.com/sharer/sharer.php?u=<?php echo esc_url( get_the_permalink() ); ?>" class="facebook" target="_blank">Facebook</a>
<a href="http://plus.google.com/share?url=<?php echo esc_url( get_the_permalink() ); ?>" class="gplus" target="_blank" >Share on Google+</a>
<a href="http://www.linkedin.com/shareArticle?mini=true&url=<?php echo esc_url( get_the_permalink() ); ?>&title=<?php echo esc_html( get_the_title() ); ?>" class="linkedin" target="_blank" >LinkedIn</a>
</p>
8. Ganti Logo di Halaman Login
Sesuai dengan namanya, script ini berfungsi untuk mengganti gambar logo di halaman login wordpress Anda.
function wcs_custom_login_page_logo() {
echo ‘<style type="text/css">
#header-logo {
background-image: url(‘ . get_bloginfo( ‘template_directory’ ) . ‘/images/admin-logo.png) !important;
}
</style>’;
}
add_action( ‘admin_head’, ‘wcs_custom_login_page_logo’ );
9. Membatasi Jumlah Kata di Judul Artikel
Apabila Anda tidak ingin membuat judul postingan yang panjang, Anda bisa menggunakan code ini untuk membatasi jumlah kata pada judul postingan.
function wcs_limit_word_count_in_post_title( $title ) {
return wp_trim_words( $title, 10, ” );
}
add_filter( ‘the_title’, ‘wcs_limit_word_count_in_post_title’ );
10. Membedakan CSS Komentar Admin
Secara default wordpress tidak memberikan perbedaan komentar antara admin dan guest/user, namun jika Anda ingin membedakan CSS-nya, Anda dapat menggunakan script dibawah ini.
.commentlist .bypostauthor, .commentlist li ul.children li.bypostauthor {
background: #FFC;
color: #C30;
}
.commentlist .bypostauthor a, .commentlist li ul.children li.bypostauthor a {
color: #C30;
}
11. Mode HTML Sebagai Default
Bagi Anda yang sudah terbiasa dengan mode HTML saat menulis posting, Anda bisa menggunakan script ini untuk menjadikannya default.
function wcs_default_WordPress_editor() {
return “html”;
}
add_filter( ‘wp_default_editor’, ‘wcs_default_WordPress_editor’ );
12. Membuat Posting Terkait Tanpa Plugin
Jika tema wordpress yang Anda gunakan belum mendukung fitur Related Post atau posting terkait, Anda bisa membuatnya sendiri dengan mnambahkan script ini ke functions.php tema Anda.
// Membuat Posting Terkait Tanpa Plugin
$tags = wp_get_post_tags( $post->ID );
if ( $tags ) {
$first_tag = $tags[0]->term_id;
$args = array(
‘tag__in’ => array( $first_tag ),
‘post__not_in’ => array( $post->ID ),
‘posts_per_page’ => 5,
‘ignore_sticky_posts’ => 1
);
$related_posts = new WP_Query( $args );
// Loop
if ( $related_posts->have_posts() ) :
while ( $related_posts->have_posts() ) : $related_posts->the_post();
get_template_part( ‘content’, get_post_format() );
endwhile;
else :
get_template_part( ‘content’, ‘none’ );
endif;
wp_reset_postdata();
}
?>
13. Minimal Kata Untuk Postingan
Jika blog Anda memiliki banyak penulis, Anda tentu memerlukan code snippets ini untuk menghindari spam. Code ini membuat user yang menulis harus memiliki jumlah kata minimal sesuai dengan pengaturan code snippets (defaultnya 500 kata/words).
Ini merupakan code snippets yang menarik karena hanya penulis yang konsisten saja yang dapat menyelesaikan tulisannya dengan jumlah kata yang banyak.
function wcs_min_word_count( $content ) {
global $post;
$wordcount = 500;
$content = $post->post_content;
if ( str_word_count( $content ) < $wordcount )
wp_die( __( ‘Kesalahan: posting Anda di bawah jumlah kata minimum. Postingan harus memiliki setidaknya ‘ . $wordcount . ‘ kata.’ ) );
}
add_action( ‘publish_post’, ‘wcs_min_word_count’ );
14. Menampilkan Waktu Revisi di Artikel
Script ini akan menampilkan waku revisi artikel/update. Tempatkan script ini dibagian atas single.php tema Anda.
// Menampilkan Waktu Revisi di Artikel
$modified_time = get_the_time( ‘U’ );
$new_modified_time = get_the_modified_time( ‘U’ );
if ( $new_modified_time != $modified_time ) {
echo " dan terakhir diubah pada ";
the_modified_time( ‘F jS, Y’ );
echo ".";
}
?>
15. Menampilkan Konten Hanya Untuk Anggota
Code ini akan mengunci konten dan konten hanya dapat dilihat oleh anggota/user yang sudah login.
function wcs_content_loggedin( $atts, $content = null ) {
if( is_user_logged_in() ) return ‘<p>’ . $content . ‘</p>’;
else return;
}
add_shortcode( ‘loggedin’, ‘wcs_content_loggedin’ );
Dibawah ini adalah kode pemanggil (shortcode) yang harus Anda masukkan pada postingan/konten yang ingin disembunyikan dari pengunjung/guest.
[loggedin]
Konten ini hanya untuk pengguna yang masuk.
[/loggedin]
16. Mengaktifkan Maintenance Mode
Jika situs web atau blog Anda masih dalam tahap pembuatan atau dalam perbaikan, code ini wajib diterapkan untuk membuat wordpress Anda berstatus maintenance bagi pengunjung yang tidak login.
function btwp_maintenace_mode() {
if ( !current_user_can( ‘edit_themes’ ) || !is_user_logged_in() ) {
die(‘Situs web dalam Pemeliharaan.’);
}
}
add_action(‘get_header’, ‘btwp_maintenace_mode’);
17. Menghapus Admin Bar
Script ini akan menghapus admin bar yang tidak diperlukan di halaman dasbor wordpress.
function example_admin_bar_remove_logo() {
global $wp_admin_bar;
$wp_admin_bar->remove_menu( ‘wp-logo’ );
}
add_action( ‘wp_before_admin_bar_render’, ‘example_admin_bar_remove_logo’, 0 );
18. Minimal Kata Untuk Komentar
Script ini mengharuskan komentator menuliskan komentarnya dengan minimal kata tertentu (defaultnya 20 kata/words).
add_filter( ‘preprocess_comment’, ‘minimal_comment_length’ );
function minimal_comment_length( $commentdata ) {
$minimalCommentLength = 20;
if ( strlen( trim( $commentdata[‘comment_content’] ) ) < $minimalCommentLength ){
wp_die( ‘Untuk berkomentar setidaknya ‘ . $minimalCommentLength . ‘ kata.’ );
}
return $commentdata;
}
19. Membuat Link Login dan Logout di Navigasi
Script ini untuk membuat link login dan logout di menu navigasi.
add_filter( ‘wp_nav_menu_items’, ‘add_logout_link’, 10, 2);
function add_logout_link( $items, $args )
{
if($args->theme_location == ‘primary_navigation’)
{
if(is_user_logged_in())
{
$items .= ‘<li><a href="’. wp_logout_url() .’">Log Out</a></li>’;
} else {
$items .= ‘<li><a href="’. wp_login_url() .’">Log In</a></li>’;
}
}
return $items;
}
20. Membuat CSS Berbeda pada Posting Terbaru
Code ini untuk membuat CSS yang berbeda pada postingan terbaru (highlight) agar berbeda dari CSS defaultnya.
function wpc_last_post_class($classes){
global $wp_query;
if(($wp_query->current_post+1) == $wp_query->post_count) $classes[] = ‘last’;
return $classes;
}
add_filter(‘post_class’, ‘wpc_last_post_class’);
21. Nonaktifkan Auto Resize Gambar
Code ini akan menonaktifkan fitur auto resize image yang defaultnya aktif di wordpress. Setelah code ini diterapkan, semua gambar yang Anda upload ke wordpress tidak akan dirubah ukurannya. Sangat cocok bagi Anda yang menggunakan wordpress di web hosting dengan disk space yang terbatas.
function wpc_unset_imagesizes($sizes){
unset( $sizes[‘thumbnail’]);
unset( $sizes[‘medium’]);
unset( $sizes[‘large’]);
}
add_filter(‘intermediate_image_sizes_advanced’, ‘wpc_unset_imagesizes’ );
22. Ubah Default Gambar Gravatar
Bosan dengan gambar gravatar yang itu-itu aja? Gunakan code ini untuk merubahnya.
function wpc_newgravatar ($avatar_defaults) {
$myavatar = get_template_directory_uri() . ‘/images/custom-gravatar.jpg’;
$avatar_defaults[$myavatar] = “Custom Avatar”;
return $avatar_defaults;
}
add_filter( ‘avatar_defaults’, ‘wpc_newgravatar ‘ )
23. Ubah Teks Pos Jadi Artikel
Code ini akan merubah nama link Pos menjadi Artikel pada dasbor wordpress.
function wpc_change_post_to_article( $translated ) {
$translated = str_ireplace(‘Pos’,’Artikel’,$translated );
return $translated;
}
add_filter(‘gettext’,’wpc_change_post_to_article’);
add_filter(‘ngettext’,’wpc_change_post_to_article’);
24. Ubah Lokasi wp-content
Script ini akan merubah folder /wp-content/ pada wordpress dan mengarahkannya ke folder yang telah Anda tentukan.
define (‘WP_CONTENT_FOLDERNAME’, ‘folder-baru’);
define( ‘WP_CONTENT_DIR’, dirname(__FILE__) . ‘/lokasi-baru/folder-baru’ );
define( ‘WP_CONTENT_URL’, ‘http://www.domain.com/lokasi-baru/folder-baru’ );
25. Arahkan Anggota ke Halaman Khusus Setelah Registrasi
Jika blog Anda mengijikan semua orang untuk mendaftar, Anda bisa menggunakan code ini agar pengunjung yang baru saja mendaftar diarahkan ke halaman tertentu (misalnya: halaman selamat datang atau halaman peraturan).
function wcs_registration_redirect() {
return home_url( ‘/halaman-yang-dituju’ );
}
add_filter( ‘registration_redirect’, ‘wcs_registration_redirect’ );
26. Arahkan Anggota ke Halaman Khusus Setelah Logout
Code ini akan membuat semua anggota yang logout dari situs diarahkan ke beranda.
add_action(‘wp_logout’,’auto_redirect_after_logout’);
function auto_redirect_after_logout(){
wp_safe_redirect( home_url() );
exit();
}
27. Buka Link Eksternal di Tab Baru
Code ini akan otomatis membuat atribut _blank pada semua link eksternal di wordpress Anda.
<script type="text/javascript">
//<![CDATA[
jQuery(document).ready(function($) {
$(‘a’).each(function() {
var a = new RegExp(‘/’ + window.location.host + ‘/’);
if(!a.test(this.href)) {
$(this).click(function(event) {
event.preventDefault();
event.stopPropagation();
window.open(this.href, ‘_blank’);
});
}
});
});
//]]>
</script>
28. Nonaktifkan Admin Bar Untuk Anggota
Code ini akan menyembunyikan admin bar dari semua user, kecuali administrator.
if ( !current_user_can( ‘manage_options’ ) ) {
add_filter( ‘show_admin_bar’, ‘__return_false’ );
}
29. Menampilkan Semua Pengaturan WordPress
Script ini akan menampilkan semua pengaturan wordpress dalam satu halaman (link hanya tersedia untuk admin).
function wcs_add_all_options_link() {
add_options_page( __(‘All Options’), __(‘All Options’), ‘administrator’, ‘options.php’ );
}
add_action( ‘admin_menu’, ‘wcs_add_all_options_link’ );
30. Notif ke Penulis Setelah Posting Diterbitkan
Script ini dibuat agar penulis/author wordpress Anda menerima notifikasi jika postingan yang mereka tulis telah diterbitkan.
function wpc_send_author_email_when_published($post_id){
// dapatkan ID penulis posting
$post_author_id = get_post_field( ‘post_author’, $post_id );
// dapatkan alamat email dari bidang meta pos menggunakan post_author_id
$email_address = get_the_author_meta(‘user_email’, $post_author_id);
$subject = ‘Postingan Anda telah diterbitkan.’;
$body = ‘Terima kasih atas kiriman Anda!’;
wp_mail($email_address, $subject, $body,);
}
add_action(‘publish_post’,’wpc_send_author_email_when_published’);
31. Menyembunyikan Wiget Dasbor Admin
Script snippets ini berfungsi untuk menyembunyikan atau menghapus seluruh widget di halaman dasbor seperti draft cepat, kesehatan situs, berita wordpress, dll.
function wpdocs_remove_dashboard_widgets(){
remove_meta_box(‘dashboard_right_now’, ‘dashboard’, ‘normal’);
remove_meta_box(‘dashboard_recent_comments’, ‘dashboard’, ‘normal’);
remove_meta_box(‘dashboard_incoming_links’, ‘dashboard’, ‘normal’);
remove_meta_box(‘dashboard_plugins’, ‘dashboard’, ‘normal’);
remove_meta_box(‘dashboard_quick_press’, ‘dashboard’, ‘side’);
remove_meta_box(‘dashboard_recent_drafts’, ‘dashboard’, ‘side’);
remove_meta_box(‘dashboard_primary’, ‘dashboard’, ‘side’);
remove_meta_box(‘dashboard_secondary’, ‘dashboard’, ‘side’);
}
32. Menyembunyikan Widget Bantuan
Script ini mampu menyembunyikan atau menghapus widget Bantuan di dasbor wordpress.
add_filter(‘contextual_help_list’,’contextual_help_list_remove’);
function contextual_help_list_remove(){
global $current_screen;
$current_screen->remove_help_tabs();
}
33. Menyembunyikan Widget Yoast SEO
Yoast SEO memiliki widget yang secara otomatis muncul di halaman awal dasbor admin wordpress bernama Yoast SEO Posts Overview. Jika Anda tidak menginginkan widget tersebut muncul, gunakan script dibawah ini.
add_action(‘wp_dashboard_setup’, ‘remove_wpseo_dashboard_overview’ );
function remove_wpseo_dashboard_overview() {
remove_meta_box( ‘wpseo-dashboard-overview’, ‘dashboard’, ‘side’ );
}
34. Menghapus Logo dan Ubah Bahasa pada Halaman Login
Jika Anda ingin halaman login wordpress Anda bersih dan sederhana, gunakan script ini untuk menghapus logo dan ubah bahasa di halaman masuk/login maupun signup/pendaftaran.
function custom_login_logo() {
echo ‘<style type ="text/css">.login h1 a { display:none!important; }</style>’;
}
add_action(‘login_head’, ‘custom_login_logo’);
add_filter( ‘login_display_language_dropdown’, ‘__return_false’ );
add_action(‘wp_dashboard_setup’, ‘wpdocs_remove_dashboard_widgets’);
Nah diatas kumpulan wordpress code snippets yang bisa Anda terapkan untuk tweaking wordpress. Seiring waktu saya akan menambahkannya lebih banyak lagi. Silahkan simpan postingan ini jika Anda memerlukannya dikemudian hari.