Untuk membuat template WordPress dengan gaya magazine, biasanya kita mengganti fungsi loop pada indeks themes. Pada template dengan gaya blog, tulisan ditampilkan secara keseluruhan. Untuk membuat cuplikan post saja, kita harus memasang tag <!--more-->
secara manual ketika menulis post.
Kita dapat mengganti indeks WordPress secara otomatis dengan mengubah fungsi loop pada file index.php
themes WordPress kita. Caranya, kita cari baris yang memuat <?php the_content(); ?>
, dan kita ganti menjadi <?php the_excerpt(); ?>
Sayangnya fungsi excerpt pada WordPress tersebut membuang semua penanda html
pada post. Ini berarti, format paragraf, huruf tebal dan miring, serta tautan link pada post secara otomatis dibuang semua oleh WordPress. Cuplikan yang ditampilkan hanya murni teksnya saja pada loop.
Fungsi berikut dapat menampilkan penanda html
pada excerpt WordPress. Cari file functions.php
pada folder themes Anda dan tambahkan baris fungsi berikut.
//start custom excerpt
function custom_wp_trim_excerpt($text) {
$raw_excerpt = $text;
if ( '' == $text ) {
$text = get_the_content('');
$text = strip_shortcodes( $text );
$text = apply_filters('the_content', $text);
$text = str_replace(']]>', ']]>', $text);
/***Add the allowed HTML tags separated by a comma.***/
$allowed_tags = '<p>,<a>,<em>,<strong>';
$text = strip_tags($text, $allowed_tags);
/***Change the excerpt word count.***/
$excerpt_word_count = 70;
$excerpt_length = apply_filters('excerpt_length', $excerpt_word_count);
/*** Change the excerpt ending.***/
$excerpt_end = ' <a href="'. esc_url( get_permalink() ) . '">' . '... selengkapnya' . '</a>';
$excerpt_more = apply_filters('excerpt_more', ' ' . $excerpt_end);
$words = preg_split("/[\n\r\t ] /", $text, $excerpt_length 1, PREG_SPLIT_NO_EMPTY);
if ( count($words) > $excerpt_length ) {
array_pop($words);
$text = implode(' ', $words);
$text = $text . $excerpt_more;
} else {
$text = implode(' ', $words);
}
}
return apply_filters('wp_trim_excerpt', $text, $raw_excerpt);
}
remove_filter('get_the_excerpt', 'wp_trim_excerpt');
add_filter('get_the_excerpt', 'custom_wp_trim_excerpt');
//end custom excerpt
Jika Anda perhatikan, fungsi tersebut juga membatasi sebanyak apa kata dalam excerpt. Perhatikan baris berikut. Angka 70 akan membatasi banyaknya kata sebanyak 70 dalam excerpt.$excerpt_word_count = 70;
Kemudian di akhir excerpt, Anda dapat lihat tulisan “baca selengkapnya”. Fungsi ini juga dapat mengganti kalimat di akhir excerpt sesuai dengan pilihan Anda, semisal “baca lebih lanjut”. Caranya, cari baris berikut pada fungsi di atas.
/*** Change the excerpt ending.***/
$excerpt_end = ' <a href="'. get_permalink($post->ID) . '">' . '... selengkapnya' . '</a>';
$excerpt_more = apply_filters('excerpt_more', ' ' . $excerpt_end);
Tulisan ... selengkapnya
dapat Anda ganti dengan kata pilihan Anda.