Cara Membuat Readmore Otomatis Di Wordpress

Written By Rey on Senin, 16 April 2012 | 02.07

Banyak sekali plugin yang berfungsi untuk membuat excerpt atau linebreak otomatis. Bahkan banyak tema yang sudah disertai fungsi tersebut. Bermula ketika saya menggunakan tema ini (Putte) yang untuk membuat readmore harus dimasukkan sendiri secara manual di setiap posting. Sehingga, apabila posting tidak diberi linebreak atau perintah readmore, maka pada home atau halaman depan posting tersebut akan ditampilkan secara utuh.


Maka untuk membuatnya otomatis, saya mengadopsi script dari plugin Auto Excerpt. Jadi, sekarang saya hanya menggunakan scriptnya saja dan pluginnya sudah saya nonaktifkan. Jika ingin membuat auto excerpt tanpa plugin, Anda bisa mencobanya. Ikuti langkah-langkah berikut.


Cara 1  Jika ingin menambah auto excerpt saja, ini kodenya.



// readmore otomatis

function auto_excerpt($content) {
$content = substr(strip_tags($content),0,100);
$more = get_option("readmore");
if ($more<>"") {
$link = get_permalink();
$content .= " <a href='$link'>$more</a>";
}
return $content;
}
function auto_excerpt_init() {
if(!is_single() && !is_page()) add_filter('the_content','auto_excerpt',0);
}
add_action('the_post', 'auto_excerpt_init');



Tambahkan baris kode di atas pada functions.php yang ada di Folder tema yang sedang Anda gunakan. Letakkan saja di bagian bawah (sebelum kode ?> penutup). Pada angka 100 (yang berwarna merah) dapat Anda ubah berapa karakter yang ingin ditampilkan sebelum linebreak (readmore). Cara ini hanya membuat auto readmore saja, tetapi jika Anda ingin lebih mudah untuk mengubah-ubah panjangnya excerpt atau cuplikan yang ingin ditampilkan di halaman home, maka gunakan cara yang di bawah. Ini akan menambahkan halaman setting tersendiri. Untuk text yang digunakan untuk link readmore serta jumlah karakter.


Cara 2 Jika ingin auto excerpt yang dilengkapi halaman setting



// readmore otomatis

if (!get_option("excerpt_length")) update_option("excerpt_length",418);

function auto_excerpt($content) {
$length = get_option("excerpt_length");
$content = substr(strip_tags($content),0,$length);
$more = get_option("readmore");
if ($more<>"") {
$link = get_permalink();
$content .= " <a href='$link'>$more</a>";
}
return $content;
}

function auto_excerpt_init() {
if(!is_single() && !is_page()) add_filter('the_content','auto_excerpt',0);
}

function auto_excerpt_options() {
add_options_page('Readmore Otomatis', 'Readmore Otomatis', 'manage_options','readmore-otomatis/options.php');
}

add_action('the_post', 'auto_excerpt_init');
add_action('admin_menu','auto_excerpt_options');



Tambahkan kode tersebut pada functions.php pilih salah satu saja cara 1 tadi atau cara 2 ini. Jika memilih cara 2 ini, nantinya Anda bisa mengubah-ubah panjangnya karakter cuplikan tanpa harus membuka functions.php untuk merubah nominal angka berwarna merah seperti cara 1 tadi. Karena settingnya akan ditambahkan pada tab Setting di dashboard Anda. Untuk itu kita perlu membuat halaman setting tersebut. Caranya, buka File Manager di cPanel Hosting Anda. Buka folder plugins yang berada di dalam wp-content. Di dalam plugins, buatlah direktori atau folder baru dengan nama readmore-otomatis. Kemudian buka folder tersebut dan buatlah file baru di dalamnya. Isikan kode di bawah ini, kemudian simpan dengan nama options.php (file dengan ekstensi php).



<?php
if ($_POST["editted"]<>"") {
update_option("excerpt_length",$_POST["excerpt_length"]);
update_option("readmore",$_POST["readmore"]);
echo '<div class="updated fade">Settings saved !</div>';
}
?>
<div class="wrap">
<?php if(function_exists('screen_icon')) screen_icon(); ?>
<h2>Readmore Otomatis</h2>
<style>
td {padding:5px;}
input {border:solid 1px #6F0; -moz-box-shadow:0 0 5px;}
</style>
<form method="post">
<table>
<tr>
<td>Read more text</td>
<td><input name="readmore" value="<?php echo get_option("readmore");?>"/></td>
</tr>
<tr>
<td>Excerpt length</td>
<td><input name="excerpt_length" value="<?php echo get_option("excerpt_length");?>" /></td>
</tr>
</table>
<input type="submit" class="button-primary" value="Save" name="editted" />
</form>
</div>



Setelah selesai, lihat dashboard atau halaman Admin WordPress Anda. Pilih tab Setting, setelah refresh, Anda akan melihat menu baru dengan nama Readmore Otomatis. Klik disitu, dan Anda akan dialihkan ke halaman setting untuk readmore tadi. Pada field Read more text Anda dapat memilih kata apa yang ingin ditampilkan sebagai permalink di halaman home. Misalnya: Baca Selengkapnya, Atau Read More &raquo;, isi saja dengan yang diinginkan. Lalu pada bagian Excerpt length, anda bisa menentukan berapa huruf atau karakter yang ditampilkan sebagai cuplikan di halaman home. Kemudian save dan lihat hasilnya di Beranda Blog Anda.

 

Catatan:


Anda lihat kembali bagian kode:

$content .= " <a href='$link'>$more</a>";

Jika Judul Posting di halaman home Anda sudah merupakan permalinks, maka pada kode tersebut tambahkan perintah nofollow menjadi seperti ini:

$content .= " <a rel='nofollow' href='$link'>$more</a>";

Penulisan nofollow menggunakan petik tunggal bukan petik ganda.

Ini berfungsi mencegah user agent mesin mencari untuk mengikuti link tersebut, selain karena sudah diwakili link pada judul, ini juga mengurangi jumlah link di halaman home. Karena search engine tidak menyukai link terlalu banyak berada pada satu halaman.

Baiklah sobat, itu tadi cara menambahkan readmore otomatis tanpa plugin. Tetapi kebanyakan tema-tema saat ini telah dilengkapi fungsi tersebut. Jadi untuk yang menggunakan tema tanpa readmore, silakan mencoba cara di atas yang saya adopsi dari plugin Auto Excerpt. Selamat mencoba dan Salam...

13 komentar:

penuliscemen mengatakan...

wah asik nih. belajar php lagi. ntar dicoba ah.

Andank mengatakan...

ini untuk themes yang ngak support auto read more ya mas?

Reyzha mengatakan...

Selamat berkreasi, Salam Kenal... :)

Reyzha mengatakan...

tepat sekali Mas, seperti tema yang saya gunakan ini posting di homenya ditampilkan utuh.

r10 mengatakan...

kalau pakai read more otomatis ga cocok kalau kita sedang ingin posting pendek

Reyzha mengatakan...

readmore ini berfungsi di halaman home (index.php) dan di halaman postnya tetap biasa. Ya mungkin memang sebagian orang ada yang ingin menampilkan posting secara utuh di halaman utama.

Alang Fauzi Bertuah mengatakan...

Suatu kebiasaan Saya, kalau ada komponen theme yang kurang maka Saya selalu mengadopsi komponen tersebut dari Twentyten atau Twentyeleven.

Termasuk untuk auto readmore yang terdapat pada arsip di Twentyten atau Twentyeleven.

Untuk excerpt di home saya atur ukuran excerpt di function.php


function mytheme_excerpt_length( $length ) {
return 40;
}
add_filter( 'excerpt_length', 'mytheme_excerpt_length' );


kemudian pada index.php, Saya ganti menjadi:





Dan dengan kode Saya yang sederhana ini, tampilannya pun hanya sederhana :)

Alang Fauzi Bertuah mengatakan...

Maaf, ternyata Saya kurang menuliskannya :)

kemudian pada index.php:




Saya ganti menjadi:

Randeezt mengatakan...

Kalau di tema saya sudah ada menu ini mas, jadi tinggal menentukan berapa jumlah kata sebelum readmore...

Reyzha mengatakan...

sebenarnya tema saya ini juga sudah ada, untuk setting text tampilanpun ada, tapi setelah diakses halaman home tetap saja ditampilkan utuh. Mungkin tema ini saya downloadnya versi yang belum diupdate kali ya :)

ciletcilet mengatakan...

wah mantap om ijin nyoba :D

Reyzha mengatakan...

Hehe, silakan dicoba

myhomeku mengatakan...

tutorialnya sangat bermanfaat..
tapi ane pake cara nomor 1..memang karakternya terpotong..
tetapi kok ga ada tulisan read more nya ya??
blog ane http://blog.fikriansyah.net

Posting Komentar

Tahukah anda, berkomentar menggunakan nama dan url bisa meningkatkan kunjungan balik ke Blog anda? Gunakan form komentar dengan bijak. Tingkatkan Backlink secara efektif hanya dengan meninggalkan komentar menggunakan Name/URL.