Cara Membuat dan Menyesuaikan Kutipan WordPress
Diterbitkan: 2020-04-16Kutipan adalah teks opsional yang terkait dengan posting. Sebagian besar waktu, ini digunakan sebagai ringkasan posting. Jika Anda menggunakan editor baru, Anda akan melihat bahwa ada opsi di bilah sisi yang disebut Kutipan :

Jika tidak muncul, Anda mungkin harus mengaktifkan opsi dari pengaturan Gutenberg. Klik pada ikon elipsis di sudut kanan atas editor dan kemudian Opsi :

Kemudian cari Kutipan dan aktifkan:

Tergantung pada bagaimana tema Anda dikonfigurasi, kutipan akan muncul ketika melihat posting Anda di blog, hasil pencarian, dll. Misalnya, di blog kami, Anda dapat melihat bagaimana semua posting kami disajikan dengan kutipan terkait:

Sekarang, apakah selalu wajib untuk menulis kutipan ini? Jika tidak, apa yang dilakukan WordPress? Apakah itu menunjukkan sesuatu atau tidak sama sekali? Nah, kita akan menjawab pertanyaan-pertanyaan ini dan kita akan melihat lebih dekat opsi yang diberikan WordPress kepada kita untuk menyesuaikan kutipan.
Bagaimana Kutipan WordPress Bekerja
WordPress memiliki dua fungsi untuk mendapatkan kutipan postingan: get_the_excerpt dan the_excerpt . Keduanya didefinisikan dalam wp-includes/post-template.php dan jika Anda melihat kode sumbernya, Anda akan menemukan bahwa semua yang dilakukan the_excerpt adalah echo hasil get_the_excerpt (setelah memfilternya dengan the_excerpt ). Jadi, pada dasarnya, kita dapat secara kasar mengatakan bahwa satu-satunya hal yang perlu Anda pahami untuk mengetahui cara kerja kutipan di WordPress adalah fungsi get_the_excerpt .
Seperti yang Anda lihat, get_the_excerpt sangat sederhana:
function get_the_excerpt( $post = null ) { // ... $post = get_post( $post ); if ( empty( $post ) ) { return ''; } // ... return apply_filters( 'get_the_excerpt', $post->post_excerpt, $post ); } Pada dasarnya, ini memuat kiriman (jika Anda tidak menyetelnya, ia menggunakan kiriman yang tersedia di loop WordPress) dan mengembalikan atribut post_excerpt -nya. Jadi sepertinya tidak ada kutipan berarti WordPress tidak akan menampilkan apa-apa pada akhirnya, bukan?
Tidak secepat itu, sobat.
Perhatikan bahwa fungsi ini sebenarnya tidak mengembalikan nilai post_excerpt secara langsung. Sebagai gantinya, ia memfilternya menggunakan filter baru: get_the_excerpt. Jadi jika ada tindakan yang terkait dengan filter itu, hasil akhirnya berpotensi berubah dan tidak lagi menjadi string kosong…
Dan memang, itulah yang terjadi di sini! Jika kita tidak menulis kutipan untuk posting tertentu, inilah yang akan kita lihat di front-end:

kata-kata pertama dari posting kami akan menjadi kutipan yang dihasilkan WordPress.
Fungsi wp_trim_excerpt
Jika kita melakukan pencarian cepat di kode sumber WordPress kita akan melihat bahwa, secara default, hanya ada satu tindakan yang terkait dengan filter get_the_excerpt . Secara khusus, di wp-includes/default-filters.php kita melihat bahwa fungsi bernama wp_trim_excerpt terhubung.
Menurut dokumen WordPress, wp_trim_excerpt bertanggung jawab untuk menghasilkan kutipan dengan maksimal 55 kata dan elipsis ditambahkan jika perlu. Dan inilah kuncinya: fungsi menganggap bahwa membuat kutipan "perlu" jika belum ada (yang, secara umum, setara dengan mengatakan bahwa pengguna belum menulis kutipan di editor). Anda dapat melihat ini di kode sumber fungsi:
function wp_trim_excerpt( $text = '', $post = null ) { $raw_excerpt = $text; if ( '' == $text ) { $post = get_post( $post ); $text = get_the_content( '', false, $post ); // [...] » Generates the excerpt using the post content } return apply_filters( 'wp_trim_excerpt', $text, $raw_excerpt ); } Melihat? Jika tidak ada kutipan ( $text adalah string kosong), maka ambil konten postingan saat ini ( get_the_content dari $post ) dan gunakan untuk menghasilkan kutipan.

Mulai saat ini, Anda dapat terus menggali dan menemukan bagaimana sebenarnya WordPress menghasilkan kode sumber. Namun, saya pikir Anda sudah mendapatkan idenya, jadi mari kita lihat dokumentasinya lagi, karena ini menjelaskan topik ini:
Mengembalikan maksimal 55 kata dengan elipsis ditambahkan jika perlu. Batas 55 kata dapat dimodifikasi oleh plugin/tema menggunakan filter
Dokumentasiexcerpt_length. String ' […]' dapat dimodifikasi oleh plugin/tema menggunakan filterexcerpt_more.wp_trim_excerpt
Jadi sekarang Anda tahu semua yang perlu diketahui untuk sepenuhnya menyesuaikan kutipan otomatis yang dihasilkan WordPress untuk posting Anda.
Cara Menyesuaikan Kutipan Otomatis
Mari kita lihat beberapa contoh bagaimana kita dapat menggunakan filter yang telah kita lihat sepanjang posting hari ini untuk menyesuaikan kutipan otomatis. Omong-omong, ingatlah bahwa untuk menambahkan modifikasi ini ke situs web Anda, Anda mungkin perlu membuat plugin.
a) Bagaimana mengubah jumlah kata yang saya inginkan dalam kutipan saya
Ini adalah salah satu yang paling sederhana. Kita telah melihat bahwa kita memiliki filter excerpt_length untuk memilih berapa banyak kata yang kita inginkan dalam kutipan kita, jadi mari kita gunakan:
function nelio_100_word_excerpts( $length ) { if ( is_admin() ) { return $length; } return 100; } add_filter( 'excerpt_length', 'nelio_100_word_excerpts', 99 ); Perhatikan bahwa hal pertama yang kita lakukan dalam fungsi kita adalah memastikan kita berada di front-end. Jika kita berada di Dasbor ( is_admin ), sebaiknya kita tidak melakukan apa pun dengan kutipan kita. Setelah kita yakin kita berada di "lingkungan yang aman", kita hanya perlu mengembalikan nomor ajaib kita. Dalam kasus saya: 100 kata.
b) Cara mengubah teks yang muncul setelah ekstrak otomatis
Yang ini juga sangat mudah karena kita telah melihat bahwa ada filter untuk itu:
function nelio_clickable_read_more( $more ) { if ( is_admin() ) { return $more; } return sprintf( '<a href="%s">Tell me more!</a>', esc_url( get_the_permalink() ) ); } add_filter( 'excerpt_more', 'nelio_clickable_read_more', 99 );Dalam hal ini, yang kita lakukan hanyalah mengembalikan teks "Ceritakan lebih banyak!" setelah ringkasan dan buat tautan agar pengguna dapat mengkliknya.
c) Cara membatasi panjang kutipan hingga sejumlah karakter tertentu
Fungsi wp_trim_words memiliki filter dengan nama yang sama yang dapat kita gunakan untuk memodifikasi kutipan akhir yang digunakan WordPress. Jadi mari kita gunakan:
function nelio_140_char_excerpts( $excerpt, $raw_excerpt ) { if ( is_admin() ) { return $excerpt; } if ( '' !== $raw_excerpt ) { return $excerpt; } return mb_substr( $excerpt, 0, 140 ); } add_filter( 'wp_trim_excerpt', 'nelio_140_char_excerpts', 99, 2 ); Filter wp_trim_words berlaku untuk kutipan otomatis dan yang ditentukan pengguna. Dalam contoh saya, saya hanya tertarik untuk memodifikasi kutipan yang telah dihasilkan secara otomatis, jadi saya perlu menambahkan kondisi baru. Jika Anda ingat, wp_trim_words hanya menghasilkan kutipan otomatis jika kutipan asli kosong, jadi Anda hanya perlu memeriksanya untuk mendapatkan hasil yang diinginkan.
Di sisi lain, perhatikan saya menggunakan mb_substr alih-alih fungsi substr klasik. Jika Anda bertanya-tanya mengapa, alasannya sederhana: jika Anda menulis di blog Anda dalam bahasa selain bahasa Inggris, kemungkinan besar Anda akan menggunakan karakter multi-byte, dan memperpendek string multi-byte dengan substr bisa salah. Baca dokumentasi PHP untuk info lebih lanjut tentang ini.
d) Cara membuat kutipan dengan paragraf pertama konten
Dan terakhir, contoh cara membuat kutipan dengan tepat menggunakan paragraf pertama postingan Anda. Tidak ada penjelasan kali ini, jadi perhatikan apa yang saya lakukan:
function nelio_first_paragraph_excerpts( $excerpt, $raw_excerpt ) { if ( is_admin() ) { return $excerpt; } if ( '' !== $raw_excerpt ) { return $excerpt; } $content = apply_filters( 'the_content', get_the_content() ); return substr( $content, 0, strpos( $content, '</p>' ) + 4 ); } add_filter( 'wp_trim_excerpt', 'nelio_first_paragraph_excerpts', 99, 2 );Pendeknya…
Kekuatan besar WordPress terletak pada ekstensibilitasnya. Hari ini kita telah melihat secara rinci bagaimana WordPress menghasilkan kutipan posting dan semua filter dan fungsi yang ditawarkannya untuk menyesuaikan hasil akhir dengan kebutuhan Anda.
Saya harap Anda menyukai posting hari ini. Bagikan ke teman Anda agar lebih banyak orang yang mengetahui keunggulan WordPress!
Gambar unggulan oleh Aaron Burden di Unsplash.
