Belajar WordPress: Menghilangkan Karakter Jeda pada Feed/XML WordPress

Sejak beberapa bulan yang lalu, Feed dari situs ini (emka.web.id) mengalami masalah. Masalah ini murni berasal dari script WordPress Feed (wp-feed.php) yang inkompatibel dengan beberapa plugin yang terpasang. Sebuah plugin (yang sampai detik ini belum saya ketahui) menyebabkan adanya tambahan karakter jeda (whitespace) pada header file XML yang digunakan untuk Feed RSS.

Untuk mengatasi hal ini beberapa hal sudah saya lakukan, antara lain dengan memasang beberapa plugin dan sedikit hack script. Sampai pada akhirnya, saya memilih menggunakan solusi hack script pada file index.php milik WordPress dengan menambahkan fungsi Wordpress leading whitespace fix yang dibuat oleh om Wejn. Dan hasilnya memuaskan, sekarang Feed RSS situs ini sudah pulih, begitu pula service XML-RPC-nya.

Berikut adalah isi dari script WordPress Leading Whitespace Fix (wejnwhitespacefix.php):

function ___wejns_wp_whitespace_fix($input) {
	/* valid content-type? */
	$allowed = false;

	/* found content-type header? */
	$found = false;

	/* we mangle the output if (and only if) output type is text/* */
	foreach (headers_list() as $header) {
		if (preg_match("/^content-type:\\s+(text\\/|application\\/((xhtml|atom|rss)\\+xml|xml))/i", $header)) {
			$allowed = true;
		}

		if (preg_match("/^content-type:\\s+/i", $header)) {
			$found = true;
		}
	}

	/* do the actual work */
	if ($allowed || !$found) {
		return preg_replace("/\\A\\s*/m", "", $input);
	} else {
		return $input;
	}
}

/* start output buffering using custom callback */
ob_start("___wejns_wp_whitespace_fix");

Untuk menggunakannya, silakan include file ini pada file index.php (satu lokasi dengan wp-config.php)

Referensi

Wagiman Wiryosukiro

Petani Sistem Informasi, tukang las plugin & themes Wordpress. Co-Founder SistemInformasi.biz. Saat ini aktif sebagai Developer & kontributor di OpenMandriva Linux.

You may also like...

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: