Tutorial Pengertian Dari Hook pada WordPress

Tutorial Pengertian Dari Hook pada WordPress

WordPress adalah sistem manajemen konten (CMS) yang populer, digunakan oleh jutaan situs web di seluruh dunia. Salah satu fitur kuat yang membedakannya dari platform lain adalah sistem “hook”. Hook memungkinkan pengguna dan pengembang untuk ‘mengaitkan’ kode kustom mereka sendiri ke dalam inti WordPress, plugin, atau tema tanpa mengubah kode asli. Dalam artikel ini, kita akan membahas pengertian hook pada WordPress dan memberikan 10 contoh praktis penggunaannya.

Kita akan analogikan hook seperti ini:

Menggunakan analogi rumah dan ruang-ruangannya untuk menjelaskan hook dalam WordPress memang menarik dan membantu dalam memahami konsepnya dengan cara yang lebih visual dan intuitif.

Bayangkan rumah Anda, dengan berbagai ruangan seperti pagar pintu masuk, pekarangan, teras, ruang tamu, kamar tidur, dapur, dan ruang belakang. Setiap ruangan ini memiliki tujuan dan akses tertentu, sama seperti berbagai hook dalam WordPress yang memungkinkan akses dan modifikasi pada tingkat yang berbeda-beda dari sistem WordPress.

  • Pagar Pintu Masuk bisa diibaratkan sebagai hook yang mengatur akses ke situs Anda, seperti login_redirect, yang memungkinkan Anda mengontrol ke mana pengguna diarahkan setelah login.
  • Pekarangan bisa dianggap sebagai hook yang berhubungan dengan bagian awal situs Anda, seperti wp_enqueue_scripts, yang digunakan untuk menambahkan skrip atau gaya yang akan dimuat di seluruh situs.
  • Teras mewakili bagian yang pertama kali dilihat oleh pengunjung, mirip dengan wp_head, di mana Anda bisa menambahkan elemen di bagian kepala situs, seperti meta tag atau skrip eksternal.
  • Ruang Tamu adalah tempat interaksi dengan pengunjung, serupa dengan the_content, sebuah filter hook yang memungkinkan Anda memodifikasi konten sebelum ditampilkan.
  • Kamar Tidur, ruangan yang lebih pribadi, bisa diibaratkan sebagai hook yang digunakan untuk fungsi spesifik pengguna, seperti profile_update yang terpicu setelah profil pengguna diperbarui.
  • Dapur adalah tempat mempersiapkan konten sebelum disajikan, mirip dengan pre_get_posts, yang memungkinkan modifikasi query post sebelum post-post tersebut diambil dari database.
  • Ruang Belakang, mungkin tempat untuk pekerjaan ‘kotor’ seperti pemeliharaan atau pengaturan yang tidak ingin dilihat pengunjung, dapat diibaratkan dengan hook seperti admin_menu, di mana Anda menambahkan atau mengubah menu di dashboard admin.

Memahami konsep hook di WordPress tidak hanya tentang menghafal nama-nama hook tetapi juga memahami bagaimana dan di mana mereka dapat digunakan untuk memodifikasi, menyesuaikan, atau memperluas fungsionalitas situs Anda tanpa mengubah kode inti WordPress. Situs WordPress Developer menjadi sumber daya yang sangat berharga dalam mempelajari berbagai hook yang tersedia, memberikan panduan dan referensi untuk penggunaan mereka dalam pengembangan plugin dan tema.

Analogi rumah dan ruangan ini membantu memberikan gambaran tentang bagaimana hook bekerja dan berinteraksi dalam ekosistem WordPress, memudahkan pemahaman tentang bagaimana memanfaatkannya untuk kebutuhan spesifik Anda dalam membangun atau mengembangkan situs WordPress. Lebih lengkap tentang hook bisa Anda lihat di https://developer.wordpress.org/plugins/hooks/.

Pengertian Hook pada WordPress

Hook dalam WordPress terbagi menjadi dua jenis utama: Action Hooks dan Filter Hooks.

  • Action Hooks memungkinkan Anda untuk ‘menyisipkan’ kode atau fungsi tambahan di titik-titik tertentu selama eksekusi halaman. Contohnya, menambahkan sebuah blok teks atau gambar di bagian footer situs.
  • Filter Hooks, di sisi lain, memungkinkan Anda untuk ‘memodifikasi’ data sebelum ditampilkan di layar atau disimpan di database. Sebagai contoh, mengubah cara judul post ditampilkan.

Menggunakan hook berarti Anda dapat memperluas atau memodifikasi fungsionalitas WordPress tanpa perlu mengedit file core WordPress, yang merupakan praktik terbaik untuk pengembangan WordPress yang berkelanjutan.

10 Contoh Penggunaan Hook di WordPress

Berikut adalah 10 contoh penggunaan hook dalam WordPress yang mencakup kedua jenis hook:

Menambahkan Google Analytics ke Footer:

Menggunakan action hook wp_footer, Anda dapat menambahkan kode pelacakan Google Analytics ke footer situs WordPress tanpa mengedit tema secara langsung.

function add_google_analytics() {
    echo "<script async src='https://www.googletagmanager.com/gtag/js?id=UA-XXXXX-Y'></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());

      gtag('config', 'UA-XXXXX-Y');
    </script>";
}
add_action('wp_footer', 'add_google_analytics');

Mengubah Panjang Excerpt:

Dengan filter hook excerpt_length, Anda dapat mengontrol panjang teks cuplikan (excerpt) yang ditampilkan.

function custom_excerpt_length( $length ) {
    return 20; // Panjang cuplikan 20 kata
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );

Menambahkan Konten Kustom Sebelum Konten Post:

Gunakan action hook the_content untuk menambahkan teks atau kode HTML kustom sebelum konten post.

function add_content_before_post( $content ) {
    $custom_content = 'Ini adalah konten kustom sebelum konten post.';
    $custom_content .= $content;
    return $custom_content;
}
add_filter( 'the_content', 'add_content_before_post' );

Mendaftarkan Menu Kustom:

Dengan action hook init, Anda dapat mendaftarkan menu kustom di tema WordPress Anda.

function register_my_menu() {
  register_nav_menu('header-menu',__( 'Header Menu' ));
}
add_action( 'init', 'register_my_menu' );

Mengubah Judul Post Secara Dinamis:

Filter hook the_title memungkinkan Anda memodifikasi judul post sebelum ditampilkan.

function change_post_title( $title ) {
    return 'Prefix: ' . $title;
}
add_filter( 'the_title', 'change_post_title' );

Menambahkan Widget Kustom:

Dengan menggunakan action hook widgets_init, Anda bisa mendaftarkan widget kustom.

function my_custom_widget() {
    register_widget( 'My_Custom_Widget_Class' );
}
add_action( 'widgets_init', 'my_custom_widget' );

Mengatur Ukuran Thumbnail Kustom:

Action hook after_setup_theme digunakan untuk menambahkan ukuran gambar thumbnail kustom.

function custom_thumbnail_size() {
    add_image_size( 'custom-size', 220, 180, true );
}
add_action( 'after_setup_theme', 'custom_thumbnail_size' );

Menambahkan Skrip Kustom ke Header:

Dengan wp_head, Anda dapat menambahkan CSS atau JavaScript kustom ke dalam bagian <head> situs.

function add_custom_script() {
    echo '<link rel="stylesheet" href="custom-style.css">';
}
add_action( 'wp_head', 'add_custom_script' );

Memodifikasi Query Utama:

Filter hook pre_get_posts memungkinkan Anda mengubah query utama WordPress sebelum post ditampilkan.

function modify_main_query( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'posts_per_page', 10 );
    }
}
add_action( 'pre_get_posts', 'modify_main_query' );

Mengubah Email Dari Alamat pada WordPress:

Dengan filter wp_mail_from, Anda bisa mengubah alamat email pengirim default.

function change_wp_mail_from( $original_email_address ) {
    return '[email protected]';
}
add_filter( 'wp_mail_from', 'change_wp_mail_from' );

Melalui contoh-contoh di atas, kita dapat melihat betapa fleksibel dan kuatnya WordPress dengan sistem hook-nya. Ini memungkinkan pengembangan yang lebih bersih dan terorganisir tanpa harus mengubah kode inti, memudahkan pemeliharaan dan peningkatan fitur situs. Dengan menguasai penggunaan hook, Anda dapat secara signifikan meningkatkan kualitas dan fungsionalitas situs WordPress Anda.

Full-stack Web Developer

2009 sampai sekarang berpengalaman dalam pengembangan web dan solusi digital.

Memulai sebagai praktisi search engine optimization (SEO) dengan brand JBS Group dapat dibuktikan dengan: Fakta I, Fakta II, Fakta III. Terus melakukan inovasi dan pengembangan dalam bidang digital.

Ruang Lingkup Pekerjaan

Sebaran Klien BudiHaryono.id

Scope klien yang kami tangani 80% terkait dengan SEO, website company profile. 10% Klien terkait dengan pengembangan aplikasi seperti pengembangan SAAS dan web aplikasi untuk kebutuhan kantor. 5% Klien terkait dengan layanan IT Solution seperti: IT infastruktur, IT networking & IT Outsourcing. 5% Klien terkait dengan layanan Maintenance.

80%
SEO & Website Company Profile
10%
Pengembangan Aplikasi
5%
IT Solution
5%
Maintenance

Platform & Arsitektur

Aplikasi yang kami bangun.

Platform, arsitektur yang kami gunakan meliputi: WordPress, Laravel, Shopify, Next.js, React, PHP.

90%
WordPress
10%
Lainnya

Jasa Web Developer Full-stack | BudiHaryono.id

Membangun web, app, SAAS dengan strategi, bukan sekadar mengikuti tren yang belum tentu menghasilkan.

2009
Mulai 2009 bekerja menjadi web devoper.
17+
Bekerja lebih dari 17 tahun berpengalaman dibidangnya.
200+
Lebih dari 200 proyek terselesaikan.
10+
Lebih dari 10 korporate klien aktif.

Worskshop BudiHaryono.id

Bekerja secara remote. Full-time menyelesaikan project sampai selesai.

BudiHaryono.id adalah jasa web developer full-stack freelance profesional dan berpengalaman.

  • Alamat Jl. Mujahidin 1 No.112, RT/RW 002/008. Kreo Selatan, Larangan, Kota Tangerang, Banten, 15156, Indonesia.
  • Telepon: 0813-9891-2341
Workshop BudiHaryono.id

Scope (ruang lingkup) penawaran Kami

Siap membantu mencapai keberhasilan seperti ekspektasi Anda.

Stacks, platforms, infrastruktur yang kami kuasai untuk memberikan hasil yang maksimal. BudiHaryono adalah full-stack web developer. Jasa Pembuatan Website, Maintenance Website, Web Company Profile Perusahaan, Jasa Pembuatan Website WordPress, Jasa Pembuatan Landing Page, Jasa Pembuatan Aplikasi Website, Jasa Fotografer Produk, Jasa Videografi, Jasa Pembuatan Video Company Profile, dan Jasa Desain UI/UX

  • Android App
  • Animasi Web
  • API Design
  • API Rest
  • App Mobile
  • App Testing
  • Backend Dev
  • Bootstrap CSS
  • Brand Photo
  • Bug Fix
  • CMS Custom
  • CodeIgniter
  • Color Grade
  • Company Video
  • Content Photo
  • Custom Hook
  • Custom Plugin
  • Custom Theme
  • Dashboard UI
  • Database
  • Deploy App
  • Docker
  • Domain Setup
  • Drone Shot
  • E-Commerce
  • Edit Photo
  • Edit Video
  • Figma UI
  • Food Photo
  • Form Builder
  • Frontend Dev
  • Full Stack
  • Git Flow
  • GraphQL
  • Headless CMS
  • Headshot
  • Hosting Setup
  • IT Support
  • IT Outsource
  • IT Infrastruktur
  • iOS App
  • JavaScript
  • Joomla Dev
  • jQuery
  • Landing Page
  • Laravel Dev
  • Load Speed
  • Logo Design
  • Maintenance
  • Mobile App
  • Mobile Web
  • Motion Graphic
  • MySQL DB
  • Next.js
  • Node.js
  • On-Page SEO
  • Page Builder
  • PHP Dev
  • Plugin Dev
  • Podcast Video
  • Portfolio Web
  • PWA Dev
  • React Dev
  • Redis Cache
  • Redesign Web
  • Reel Video
  • REST API
  • Responsive
  • Schema Markup
  • SEO Teknis
  • Server Side
  • Sitemap XML
  • SSL Setup
  • Studio Foto
  • Tailwind CSS
  • Theme Dev
  • TypeScript
  • UI Design
  • UX Research
  • Video Profil
  • Vue.js
  • Web Audit
  • Web Design
  • Web Dev
  • WebFlow
  • WooCommerce
  • WordPress Dev
  • XML Sitemap

Klien & Partner Kami

Perusahaan, UMKM & Individual yang menggunakan jasa kami & Tim

Selain pengembangan web kami juga menangani IT solutions (infrastruktur, it support outsourcing) dll.

  • 99.Co
  • AET Travel
  • Alpha Filter Indonesia
  • Belanjah Mamah
  • Diklat Gada Pratama
  • Evania Residence
  • Fajarmerah
  • Fajarmerah Collection
  • Garda Total Securindo
  • Gestun ITC BSD
  • IDHub
  • ID Outsourcing
  • Imtri Jaya Interior
  • Indo Oustsourcing
  • Izzatishot Creative
  • Jasa Cuci Toren Air
  • Juragan Grooming
  • Kopi Kenangan
  • Leo Siregar
  • LQ Law Firm
  • Neviaffan Travel
  • Newland FA
  • Outsourcing
  • Outsourcingindo
  • Paket Firstmedia
  • Paket XL Satu
  • Pengacara Perceraian
  • Pintu Besi Kens
  • PT. ASP
  • PT. BNI ( Divisi DPLK )
  • PT. Buana Merdeka Jaya
  • PT. FISS
  • PT. GPP Sejahtera
  • PT. GTS
  • PT. HPM Group
  • PT. KCS
  • PT. Phytochemindo Reksa
  • PT. Samco Farma
  • PT. SAS Security
  • PT. SKM
  • PT. Union Abadi Makmur
  • PT Bahana Inti Sejahtera
  • PT Fisssecurity
  • PT Inter Sistem Asia
  • PT Kenko
  • PT MKI
  • Pusat Khitan
  • Reqspace
  • Service Center Wika
  • Sewa Standing AC
  • Smartschool Al-Haamidiyah
  • Solahart Service Center
  • Supplier TD
  • Toko Timbangan
  • Total Buah Segar
  • WRK & Partners
  • XL Satu