<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blaszta! - Freeware, Antivirus dan Komputer Tip &#38; Trik &#187; wordpress</title>
	<atom:link href="http://www.blaszta.com/blog/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blaszta.com/blog</link>
	<description>“Kalau Ada yang Gratis, Kenapa Pakai Bajakan?”</description>
	<lastBuildDate>Wed, 25 Jan 2012 14:09:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Gagal upgrade WordPress? Tambahkan Memory Limit!</title>
		<link>http://www.blaszta.com/blog/2009/11/gagal-upgrade-wordpress-tambahkan-memory-limit/</link>
		<comments>http://www.blaszta.com/blog/2009/11/gagal-upgrade-wordpress-tambahkan-memory-limit/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 16:30:06 +0000</pubDate>
		<dc:creator>blaszta</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Tip & Tricks]]></category>
		<category><![CDATA[filezilla]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.blaszta.com/blog/2009/11/gagal-upgrade-wordpress-tambahkan-memory-limit/</guid>
		<description><![CDATA[Ketika masuk ke halaman admin WordPress sekitar 2 minggu yang lalu, saya melihat peringatan untuk upgrade ke WordPress 2.8.5. Namun karena sibuk pindah ke hosting baru dan mengganti tema blog, saya menunda proses ini. Ketika ada waktu luang, akhirnya saya melakukan proses upgrade. Namun tanpa disangka, ternyata saya menemukan masalah baru. Ketika menggunakan fitur upgrade [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-right-width: 0px; margin: 0px 10px 5px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="wp_upgrades" border="0" alt="wp_upgrades" align="left" src="http://www.blaszta.com/blog/wp-content/uploads/2009/11/wp_upgrades.jpg" width="150" height="141" /> Ketika masuk ke halaman admin WordPress sekitar 2 minggu yang lalu, saya melihat peringatan untuk upgrade ke WordPress 2.8.5. Namun karena sibuk pindah ke hosting baru dan mengganti tema blog, saya menunda proses ini. Ketika ada waktu luang, akhirnya saya melakukan proses upgrade. Namun tanpa disangka, ternyata saya menemukan masalah baru.</p>
<p> <span id="more-588"></span><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="Fatal-error-Upgrading-WP" border="0" alt="Fatal-error-Upgrading-WP" src="http://www.blaszta.com/blog/wp-content/uploads/2009/11/FatalerrorUpgradingWP.png" width="454" height="144" />
<p>Ketika menggunakan fitur upgrade built in WordPress saya menemukan pesan kesalahan yang tidak pernah muncul sebelumnya.</p>
<blockquote><p><strong>Fatal error: </strong>Allowed memory size of 33554432 bytes exhausted (tried to allocate 2354671 bytes) in <strong>/public_html/wordpress/wp-includes/http.php</strong> on line <strong>1331</strong></p>
</blockquote>
<p>Terus terang yang muncul pertama kali dalam pikiran saya adalah setting server hosting baru saya yang “tidak akomodatif”. Namun setelah berbicara dengan customer support &amp; melakukan sedikit riset dengan bantuan Google, saya menemukan solusinya.</p>
<p>Pesan kesalahan tersebut muncul karena ketika melakukan upgrade blog yang menggunakan cukup banyak plugin aktif (saya menggunakan 10+ plugin). Cara pertama adalah non aktifkan plugin-plugin tersebut sebelum proses upgrade &amp; ini pun belum pasti berhasil. Hmm sedikit merepotkan menurut saya. Cara kedua adalah dengan menaikkan memory limit PHP, sehingga ketika script untuk upgrade dijalankan tidak menghasilkan pesan fatal error. Caranya cukup sederhana:</p>
<ol>
<li>Dengan program FTP (FileZilla, SmartFTP, dll.) login ke website di mana WordPress di install.</li>
<li>Download file <strong>wp-config.php</strong> ke komputer Anda sebagai backup.</li>
<li>Jika Anda menggunakan FileZilla, <strong>klik kanan</strong> file wp-config.php yang ada di website dan pilih <strong>Edit</strong>.</li>
<li>Program text editor (biasanya Notepad) akan menampilkan isi file wp-config.php, tambahkan:
<p><strong><div class="note"><div class="noteclassic">define(&#8216;WP_MEMORY_LIMIT&#8217;, &#8217;64M&#8217;);</div></div></strong>      </p>
<p>di baris baru, setelah baris define(&#8216;DB_COLLATE&#8217;, &#8221;).</li>
<li>Simpan file (Ctrl+S) lalu tutup program text editor. FileZilla akan memunculkan pesan seperti ini:     <br /><a href="http://www.blaszta.com/blog/wp-content/uploads/2009/11/filezille_upload_confirm.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="filezille_upload_confirm" border="0" alt="filezille_upload_confirm" src="http://www.blaszta.com/blog/wp-content/uploads/2009/11/filezille_upload_confirm_thumb.jpg" width="231" height="180" /></a>       <br />Tandai “Finish editing..” &amp; klik Yes. FileZilla akan mengupload secara otomatis file yang diedit.</li>
<li>Login ke halaman admin WordPress &amp; lakukan upgrade.</li>
</ol>
<p>Sedikit penjelasan (untuk yang ingin tahu), 64M adalah singkatan dari 64 Mega Bytes. Jadi kita mengubah besar ruang memory yang dapat digunakan oleh PHP untuk mengeksekusi sebuah script. Jika nilai ini terlalu besar, Anda bisa menggunakan nilai yang lebih kecil seperti 32M atau 16M.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blaszta.com/blog/2009/11/gagal-upgrade-wordpress-tambahkan-memory-limit/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Konflik Live Writer dengan Smush.it</title>
		<link>http://www.blaszta.com/blog/2009/08/konflik-live-writer-dengan-smush-it/</link>
		<comments>http://www.blaszta.com/blog/2009/08/konflik-live-writer-dengan-smush-it/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 06:26:00 +0000</pubDate>
		<dc:creator>blaszta</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Tip & Tricks]]></category>
		<category><![CDATA[live writer]]></category>
		<category><![CDATA[smush.it]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.blaszta.com/blog/2009/08/konflik-live-writer-dengan-smush-it/</guid>
		<description><![CDATA[Image via Wikipedia Windows Live Writer merupakan alat bantu menulis artikel blog terbaik jika Anda menggunakan Microsoft Windows. Selain merupakan freeware/gratis, banyak sekali fitur yang ditawarkan oleh Live Writer, ditambah kemampuannya bisa terus ditingkatkan dengan menggunakan plugin. Sangat nyaman jika Anda menulis blog dengan Live Writer. Akhir-akhir ini setiap akan melakukan publish artikel ke blog, [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="margin: 1em; width: 160px; display: block; float: left;"><a href="http://en.wikipedia.org/wiki/Image:Windows_Live_Writer_logo.png"><img style="border-bottom: medium none; border-left: medium none; display: block; border-top: medium none; border-right: medium none" src="http://upload.wikimedia.org/wikipedia/en/d/d1/Windows_Live_Writer_logo.png" alt="20px|Windows Live Logo Windows Live Writer" width="150" height="150" /></a></p>
<p class="zemanta-img-attribution" style="font-size: 0.8em">Image via <a href="http://en.wikipedia.org/wiki/Image:Windows_Live_Writer_logo.png">Wikipedia</a></p>
</div>
<p><a href="http://www.blaszta.com/blog/2007/10/blogging-offline-dengan-live-writer/" target="_blank">Windows Live Writer</a> merupakan alat bantu menulis artikel blog terbaik jika Anda menggunakan Microsoft Windows. Selain merupakan freeware/gratis, banyak sekali fitur yang ditawarkan oleh Live Writer, ditambah kemampuannya bisa terus ditingkatkan dengan menggunakan plugin. Sangat nyaman jika Anda menulis blog dengan Live Writer.</p>
<p><span id="more-443"></span></p>
<p>Akhir-akhir ini setiap akan melakukan publish artikel ke blog, Live Writer selalu gagal. Muncul pesan kesalahan: <em>metaWeblog.newMediaObject method received from the blog server was invalid:  Invalid response document returned from XmlRpc server</em>. “Waduh Live Writer kenapa lagi nih?”, kata saya dalam hati. Saya jadi teringat <a href="http://www.blaszta.com/blog/2009/02/bug-ketika-menggunakan-wp-271-dan-windows-live-writer/" target="_blank">masalah sebelumnya</a> yang harus dituntaskan dengan memodifikasi sebuah file PHP di WordPress.</p>
<p>Solusi pertama yang terpikirkan adalah mengupgrade instalasi WordPress, karena kebetulan saya belum menggunakan versi terbaru. Setelah diupgrade, walau dengan sedikit kesulitan karena blog saya tidak mau diupgrade dengan fitur Automatic Upgrade bawaan WordPress 2.8, lalu saya coba lagi publish artikel dari Live Writer. Sayangnya masih gagal.</p>
<p>Setelah melakukan pencarian di Google, saya mendapat saran untuk melihat log file Live Writer (Help &gt; About &gt; Show Log File). Setelah membuka file log tersebut dan kebingungan untuk menterjemahkan isi log tesebut kecuali melihat ada permasalahan ketika memanggil beberapa fungsi seperti “DoBeforePublishUploadWork”, saya kembali melakukan pencarian di Google. Akhirnya saya menemukan <a href="http://tech.minthegap.com/2009/07/windows-live-writer-will-not-post-images/" target="_blank">sebuah blog</a> yang memberitahukan bahwa kemungkinan permasalah tersebut bisa jadi merupakan konflik dengan plugin Smush.it.</p>
<p><a href="http://www.blaszta.com/blog/2009/03/smushit-optimalisasi-gambar-di-blog-anda-dengan-mudah/" target="_blank">Smush.it</a>, merupakan tool untuk memperkecil ukuran gambar <em>on-the-fly </em>(langsung, tanpa aplikasi pengolah gambar) yang sangatlah berharga bagi pemilik blog. Namun permasalahannya, akhir-akhir ini service yang diberikan secara gratis oleh Yahoo Performance Team ini tidak stabil, terutama setelah ada update terbaru bagi plugin.</p>
<p>“Masuk akal”, pikir saya dalam hati. “DoBeforePublishUploadWork” pasti berhubungan dengan mengunggah (upload) file ke server blog. Langsung saja masuk ke halaman admin blog dan menonaktifkan plugin Smush.it. Saya kembali ke Windows Live Writer dan coba kembali mempublish sebuah artikel, dan kali ini sukses!</p>
<p>Sedikit penasaran, saya mengaktifkan kembali plugin Smush.it dan upload sebuah file gambar via admin WordPress. Ketika mencoba mengecilkan ukurannya dengan Smush.it, sebuah pesan kesalahan kembali muncul seperti gambar di bawah:</p>
<p><a href="http://www.blaszta.com/blog/wp-content/uploads/2009/08/smush_fail.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="smush_fail" src="http://www.blaszta.com/blog/wp-content/uploads/2009/08/smush_fail_thumb.jpg" border="0" alt="smush_fail" width="504" height="101" /></a></p>
<p>Setelah kembali melakukan pencarian di Google, pesan “Failed to create a temp dir” ini terjadi di server Yahoo/Smush.it, bukan di server pengguna plugin, jadi tidak ada yang bisa kita lakukan.</p>
<p>Sampai Yahoo/Smush.it memperbaiki masalah ini, saya nampaknya harus terus menonaktifkan plugin Smush.it&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blaszta.com/blog/2009/08/konflik-live-writer-dengan-smush-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Smush.it, Optimalisasi Gambar di Blog Anda dengan Mudah</title>
		<link>http://www.blaszta.com/blog/2009/03/smushit-optimalisasi-gambar-di-blog-anda-dengan-mudah/</link>
		<comments>http://www.blaszta.com/blog/2009/03/smushit-optimalisasi-gambar-di-blog-anda-dengan-mudah/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 04:08:33 +0000</pubDate>
		<dc:creator>blaszta</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Freeware]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[smush.it]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.blaszta.com/blog/2009/03/24/smushit-optimalisasi-gambar-di-blog-anda-dengan-mudah/</guid>
		<description><![CDATA[Image by gIadius via Flickr Salah satu point penting ketika melakukan desain web adalah performance (performa). Performa disini bukanlah tampilan yang wah atau animasi yang keren, namun sebaliknya: bagaimana halaman web dapat ditampilkan secara cepat, mengurangi resource yang perlu digunakan dari server, meminimalisir koneksi HTTP, dan masil banyak lagi. Gambar, sebagai salah satu elemen yang [...]]]></description>
			<content:encoded><![CDATA[<div style="margin: 1em; display: block; float: left" class="zemanta-img"><a href="http://www.flickr.com/photos/48152057@N00/3379610589/"><img style="border-bottom: medium none; border-left: medium none; display: block; border-top: medium none; border-right: medium none" alt="Maintenance Bot 09" src="http://farm4.static.flickr.com/3651/3379610589_c53aed5927_m.jpg" /></a>
<p style="font-size: 0.8em" class="zemanta-img-attribution">Image by <a href="http://www.flickr.com/photos/48152057@N00/3379610589/">gIadius</a> via Flickr</p>
</p></div>
<p>Salah satu point penting ketika melakukan desain web adalah <em>performance</em> (performa). Performa disini bukanlah tampilan yang wah atau animasi yang keren, namun sebaliknya: bagaimana halaman web dapat ditampilkan secara cepat, mengurangi resource yang perlu digunakan dari server, meminimalisir koneksi HTTP, dan masil banyak lagi. Gambar, sebagai salah satu elemen yang paling sering digunakan dalam sebuah halaman web tentu saja tidak lepas dari point penting ini. Dan salah satu trik yang digunakan adalah optimalisasi gambar.</p>
<p> <span id="more-374"></span>
<p>Optimalisasi gambar secara sederhana adalah membuat ukuran file gambar (besar file dalam bytes, bukan dimensinya) sekecil mungkin tanpa mengurangi kualitas gambar. Jika anda familiar dengan program Photoshop, ada sebuah fitur yang disebut dengan Save for Web dimana kita bisa melihat preview dari gambar setelah dioptimalisasi (hingga 3 buah gambar).</p>
<p><a href="http://www.blaszta.com/blog/wp-content/uploads/2009/03/20090324-091304.jpg" rel="lightbox"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="2009-03-24_091304" border="0" alt="2009-03-24_091304" src="http://www.blaszta.com/blog/wp-content/uploads/2009/03/20090324-091304-thumb.jpg" width="504" height="361" /></a> </p>
<p><em>Gambar 1. Fitur Save for Web pada Photoshop dimana anda langsung dapat melihat preview 3 tingkatan kualitas gambar/besar file yang akan disimpan (gambar asli/original selalu berada di kiri atas).</em></p>
<p>Atau jika anda menggunakan program image editor yang lain, ketika akan menyimpan file kedalam format JPG sering kali anda ditanyakan mengenai kualitas gambar yang akan disimpan (biasanya dalam skala 10-100). Ini sebenarnya adalah kualitas gambar setelah proses kompresi: ketika kualitas tinggi tingkat kompresi yang digunakan rendah dan ukuran file menjadi besar. Begitu pula sebaliknya.</p>
</p>
<p>Sudah bingung? Atau malah bosan? <img src='http://www.blaszta.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Oke, saya tidak akan mengajarkan bagaimana menjadi “master optimalisasi” dalam artikel ini. Paragraf di atas adalah sekedar ilustrasi dan pengenalan mengenai optimalisasi gambar. Lalu apa keuntungannya optimalisasi image ini buat para penulis blog ?</p>
<ol>
<li>Ruang hard disk yang digunakan secara otomatis lebih kecil (terutama yang memiliki paket hosting dengan space kecil). </li>
<li>Bandwith yang digunakan juga kebih kecil (terutama untuk yang menggunakan hosting dengan bandwith terbatas). </li>
<li>Resource server yang digunakan lebih kecil (karena memanggil file dengan ukuran yang lebih kecil). </li>
<li>Halaman web akan tampil lebih cepat di browser pengunjung (karena total jumlah bytes yang harus di download juga lebih kecil). </li>
</ol>
<p>Dari semua keuntungan ini, hanya satu point minusnya: anda harus melakukan langkah ekstra mengoptimalisasi gambar sebelum di upload ke webserver. Nah disinilah <a href="http://smushit.com/" target="_blank">Smush.it</a> memainkan peran penting, karen <strong>proses optimalisasi dapat dilakukan secara otomatis</strong>!</p>
<p>Berbeda dengan aplikasi desktop, Smush.it merupakan servis online yang dikembangkan oleh <a href="http://developer.yahoo.com/performance/">Yahoo Exceptional Performance team</a>. Smush.it menawarkan 4 cara optimalisi gambar:</p>
<ol>
<li>Upload ke web Smush.it </li>
<li>Plugin Firefox </li>
<li>Bookmarklet </li>
<li>Plugin WordPress </li>
</ol>
<p>Dalam artikel ini saya hanya akan membahas point ke 4. Plugin Smush.it dapat didownload di: <a title="http://wordpress.org/extend/plugins/wp-smushit/" href="http://wordpress.org/extend/plugins/wp-smushit/">http://wordpress.org/extend/plugins/wp-smushit/</a></p>
<p><div class="note"><div class="notetip">Jika anda tidak punya program image editor atau penulis blog yang tidak menggunakan WordPress, 3 cara yang lain dapat berguna bagi anda.</div></div></p>
<p>Setelah aktivasi plugin, Smush.it akan<strong> secara otomatis melakukan optimalisasi gambar yang di upload</strong>. Lalu bagaimana untuk gambar yang sudah berada dalam server? Jangan takut, anda dapat melakukan optimalisasi secara manual. Caranya cukup mudah: login ke halaman Admin WordPress anda dan klik Media &gt; Library dari menu sebelah kiri. Halaman Media Library akan muncul dan anda dapat melakukan optimalisasi gambar satu per satu.</p>
<p><a href="http://www.blaszta.com/blog/wp-content/uploads/2009/03/20090324-105525.jpg" rel="lightbox"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="2009-03-24_105525" border="0" alt="2009-03-24_105525" src="http://www.blaszta.com/blog/wp-content/uploads/2009/03/20090324-105525-thumb.jpg" width="504" height="222" /></a> </p>
<p><em>Gambar 2. Anda dapat dengan mudah melakukan optimalisasi file gambar dari dalam Media Library dengan mengklik link Smush.it now!.</em></p>
<p>Dari gambar diatas dapat dilihat saya dapat memangkas ukuran file gambar sebesar 25.3% dengan menggunakan Smush.It. Nilai ini dapat berbeda dengan file lain, tergantung dari ukuran file asli dan sebagainya. Secara umum Smush.it dapat mengurangi besar file 10-50%.</p>
<p>Mudah bukan? Selamat mencoba!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blaszta.com/blog/2009/03/smushit-optimalisasi-gambar-di-blog-anda-dengan-mudah/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Bug Ketika Menggunakan WP 2.7.1 dan Windows Live Writer</title>
		<link>http://www.blaszta.com/blog/2009/02/bug-ketika-menggunakan-wp-271-dan-windows-live-writer/</link>
		<comments>http://www.blaszta.com/blog/2009/02/bug-ketika-menggunakan-wp-271-dan-windows-live-writer/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 23:39:54 +0000</pubDate>
		<dc:creator>blaszta</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Freeware]]></category>
		<category><![CDATA[windows live writer]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.blaszta.com/blog/2009/02/27/bug-ketika-menggunakan-wp-271-dan-windows-live-writer/</guid>
		<description><![CDATA[Image via Wikipedia Setiap posting artikel akhir-akhir ini saya selalu kebingungan.. Tampilan artikel di blog kacau balau! Tapi setelah saya perhatikan, semua tanda “&#60;” &#38; “&#62;” yang notabene sering sekali digunakan di HTML hilang semua! Wah pantas aja tampilannya jadi ajaib begini. Usut punya usut dan browsing + googling, akhirnya ketemu masalahnya. Ada 3 hal [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="display: block; float: right; margin: 1em; width: 160px" jquery1235706705346="199"><a href="http://en.wikipedia.org/wiki/Image:Windows_Live_Writer_logo.png"><img style="border-right: medium none; border-top: medium none; display: block; border-left: medium none; border-bottom: medium none" height="150" alt="20px|Windows Live Logo Windows Live Writer" src="http://upload.wikimedia.org/wikipedia/en/d/d1/Windows_Live_Writer_logo.png" width="150" /></a>
<p class="zemanta-img-attribution" style="font-size: 0.8em">Image via <a href="http://en.wikipedia.org/wiki/Image:Windows_Live_Writer_logo.png">Wikipedia</a></p>
</p></div>
<p>Setiap posting artikel akhir-akhir ini saya selalu kebingungan.. Tampilan artikel di blog kacau balau! Tapi setelah saya perhatikan, semua tanda “&lt;” &amp; “&gt;” yang notabene sering sekali digunakan di HTML hilang semua! Wah pantas aja tampilannya jadi ajaib begini.</p>
<p>Usut punya usut dan browsing + googling, akhirnya ketemu masalahnya. Ada 3 hal yang jadi penyebabya:</p>
<ol>
<li>Anda menggunakan WordPress 2.7.1 (seingat saya ketika masih versi 2.7 tidak ada masalah). </li>
<li>Anda menulis dengan Windows Live Writer (WLW) yang ketika publish article memanfaatkan XML-RPC. </li>
<li>Libxml yang digunakan PHP pada sever anda adalah versi 2.7.x </li>
</ol>
<p> <span id="more-333"></span>
<p>Secara sederhana, permasalahan utama terletak pada bug di libxml yang digunakan oleh PHP (bahasa pemrograman yang digunakan WordPress). WLW memanfaatkan <em>library </em>libxml ketika mengupload artikel. Jika ada bug pada libxml, maka secara otomatis artikel yang di upload pasti jadinya salah. Saat ini diketahui bahwa libxml versi 2.7.0 hingga 2.7.3 bermasalah.</p>
<p>Bagaimana untuk tahu versi libxml pada server? Buat sebuah file dan berinama info.php dan isikan kode berikut:</p>
<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb">
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"><span style="color: #0000ff">&lt;?</span>php <a style="color: #ffa500" href="http://www.php.net/phpinfo">phpinfo</a>(); <span style="color: #0000ff">?&gt;</span></pre>
</pre>
<p>Simpan file, &amp; upload ke root directory lalu jalankan file tersebut di browser. Misalkan: <a href="http://www.namadomain.com/info.php">www.namadomain.com/info.php</a></p>
<p>Seluruh tampilan konfigurasi PHP akan muncul pada layar. Pencet Ctrl + F untuk melakukan pencarian dan ketik “libxml” &amp; pencet next beberapa kali jika terdapat beberapa kata libxml. Yang anda cari tampilannya akan seperti ini: </p>
<p><img title="tmp74A9" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="96" alt="tmp74A9" src="http://www.blaszta.com/blog/wp-content/uploads/2009/02/tmp74a9.png" width="504" border="0" /></p>
<p>Dari tampilan di atas terlihat bahwa PHP di server saya menggunakan versi 2.7.3.</p>
<p>Point no. 3 ini sedikit merepotkan, apalagi jika anda menggunakan <em>shared hosting </em>dimana anda tidak mungkin mengubah-ubah konfigurasi server. Lalu bagaimana solusinya?</p>
<p>Solusi pertama: upgrade versi libxml di server ke versi yang lebih baru (namun tidak ada kepastian bahwa bug ini sudah diperbaikin) atau downgrade ke versi 2.6.32. Opsi ini tentu tidak dapat dilakukan jika anda tidak memiliki server blog anda sendiri.</p>
<p>Solusi kedua: jangan gunakan WLW, atau program blogging lain yang memanfaatkan libxml. Hmm.. ini sedikit repot buat saya, karena saya kadung jatuh cinta sama WLW <img src='http://www.blaszta.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
<p>Solusi ketiga: patch WordPress anda! Perlu diingat bahwa ini bukan patch resmi dari WP. Ada 3 file yang perlu di patch:</p>
<ol>
<li>blogger.php (direktori wpadmin/import) </li>
<li>class-IXR.php, dan </li>
<li>rss.php (keduanya di direktori wp-includes) </li>
</ol>
<p>Pada dasarnya patch ini adalah untuk memanipulasi string “&lt;&gt;&amp;” sebelum fungsi xml_parse dipanggil:</p>
<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb">
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  1: //xmllib 2.7.0 -2.7.2 stripping leading angle brackets bug patch
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  2: if(LIBXML_DOTTED_VERSION == '2.7.0' ||
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  3: LIBXML_DOTTED_VERSION == '2.7.1' ||
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  4: LIBXML_DOTTED_VERSION == '2.7.2' ||
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  5: LIBXML_DOTTED_VERSION == '2.7.3'
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  6: ){
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  7: $xml =str_replace(&quot;&amp;lt;&quot;,&quot;&amp;#60;&quot;,$xml );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  8: $xml =str_replace(&quot;&amp;gt;&quot;,&quot;&amp;#62;&quot;,$xml );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  9: $xml =str_replace(&quot;&amp;amp;&quot;,&quot;&amp;#38;&quot;,$xml );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 10: }
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 11: //end Fix
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 12: xml_parse($parser, $xml);</pre>
</pre>
<p><strong>Patch untuk blogger.php</strong></p>
<p>Update fungsi parse menjadi:</p>
<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb">
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  1: function parse($xml) {
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  2:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  3: 	global $app_logging;
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  4: 	array_unshift($this-&gt;ns_contexts, array());
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  5:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  6: 	$parser = xml_parser_create_ns();
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  7: 	xml_set_object($parser, $this);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  8: 	xml_set_element_handler($parser, &quot;start_element&quot;, &quot;end_element&quot;);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  9: 	xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 10: 	xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,0);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 11: 	xml_set_character_data_handler($parser, &quot;cdata&quot;);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 12: 	xml_set_default_handler($parser, &quot;_default&quot;);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 13: 	xml_set_start_namespace_decl_handler($parser, &quot;start_ns&quot;);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 14: 	xml_set_end_namespace_decl_handler($parser, &quot;end_ns&quot;);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 15:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 16: 	$contents = &quot;&quot;;
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 17:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 18: 	//xmllib 2.7.0 -2.7.2 stripping leading angle brackets bug patch
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 19:   if(LIBXML_DOTTED_VERSION == '2.7.0' ||
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 20:   LIBXML_DOTTED_VERSION == '2.7.1' ||
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 21:   LIBXML_DOTTED_VERSION == '2.7.2' ||
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 22:   LIBXML_DOTTED_VERSION == '2.7.3'
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 23:   ){
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 24:   $xml =str_replace(&quot;&amp;lt;&quot;,&quot;&amp;#60;&quot;,$xml );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 25:   $xml =str_replace(&quot;&amp;gt;&quot;,&quot;&amp;#62;&quot;,$xml );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 26:   $xml =str_replace(&quot;&amp;amp;&quot;,&quot;&amp;#38;&quot;,$xml );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 27:   }
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 28:   //end Fix
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 29:   xml_parse($parser, $xml);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 30:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 31: 	xml_parser_free($parser);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 32:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 33: 	return true;
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 34: }</pre>
</pre>
<p><strong>Patch untuk class-IXR.php</strong></p>
<p>Update fungsi yang sama, namun kodenya sedikit berbeda:</p>
<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb">
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  1: function parse() {
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  2:     // first remove the XML declaration
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  3:     $this-&gt;message = preg_replace('/<span style="color: #0000ff">&lt;</span>\?xml(.*)?\?'.'<span style="color: #0000ff">&gt;</span>/', '', $this-&gt;message);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  4:     if (trim($this-&gt;message) == '') {
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  5:         return false;
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  6:     }
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  7:     $this-&gt;_parser = xml_parser_create();
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  8:     // Set XML parser to take the case of tags in to account
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  9:     xml_parser_set_option($this-&gt;_parser, XML_OPTION_CASE_FOLDING, false);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 10:     // Set XML parser callback functions
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 11:     xml_set_object($this-&gt;_parser, $this);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 12:     xml_set_element_handler($this-&gt;_parser, 'tag_open', 'tag_close');
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 13:     xml_set_character_data_handler($this-&gt;_parser, 'cdata');
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 14:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 15:     //xmllib 2.7.0 -2.7.2 stripping leading angle brackets bug patch
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 16:     if(LIBXML_DOTTED_VERSION == '2.7.0' ||
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 17:     LIBXML_DOTTED_VERSION == '2.7.1' ||
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 18:     LIBXML_DOTTED_VERSION == '2.7.2' ||
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 19:     LIBXML_DOTTED_VERSION == '2.7.3'
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 20:     ){
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 21:     $this-&gt;message =str_replace(&quot;&amp;lt;&quot;,&quot;&amp;#60;&quot;,$this-&gt;message );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 22:     $this-&gt;message =str_replace(&quot;&amp;gt;&quot;,&quot;&amp;#62;&quot;,$this-&gt;message );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 23:     $this-&gt;message =str_replace(&quot;&amp;amp;&quot;,&quot;&amp;#38;&quot;,$this-&gt;message );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 24:     }
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 25:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 26:     if (!xml_parse($this-&gt;_parser, $this-&gt;message)) {
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 27:         /* die(sprintf('XML error: %s at line %d',
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 28:             xml_error_string(xml_get_error_code($this-&gt;_parser)),
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 29:             xml_get_current_line_number($this-&gt;_parser))); */
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 30:         return false;
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 31:     }
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 32:     xml_parser_free($this-&gt;_parser);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 33:     // Grab the error messages, if any
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 34:     if ($this-&gt;messageType == 'fault') {
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 35:         $this-&gt;faultCode = $this-&gt;params[0]['faultCode'];
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 36:         $this-&gt;faultString = $this-&gt;params[0]['faultString'];
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 37:     }
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 38:     return true;
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 39: }</pre>
</pre>
<p><strong>Patch untuk rss.php</strong></p>
<p>Update fungsi MagpieRSS:</p>
<pre style="border-right: #cecece 1px solid; padding-right: 5px; border-top: #cecece 1px solid; padding-left: 5px; min-height: 40px; padding-bottom: 5px; overflow: auto; border-left: #cecece 1px solid; width: 650px; padding-top: 5px; border-bottom: #cecece 1px solid; background-color: #fbfbfb">
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  1: function MagpieRSS ($source) {
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  2:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  3: 	# if PHP xml isn't compiled in, die
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  4: 	#
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  5: 	if ( !function_exists('xml_parser_create') )
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  6: 		trigger_error( &quot;Failed to load PHP's XML Extension. http://www.php.net/manual/en/ref.xml.php&quot; );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  7:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff">  8: 	$parser = @xml_parser_create();
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb">  9:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 10: 	if ( !is_resource($parser) )
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 11: 		trigger_error( &quot;Failed to create an instance of PHP's XML parser. http://www.php.net/manual/en/ref.xml.php&quot;);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 12:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 13:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 14: 	$this-&gt;parser = $parser;
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 15:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 16: 	# pass in parser, and a reference to this object
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 17: 	# setup handlers
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 18: 	#
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 19: 	xml_set_object( $this-&gt;parser, $this );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 20: 	xml_set_element_handler($this-&gt;parser,
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 21: 			'feed_start_element', 'feed_end_element' );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 22:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 23: 	xml_set_character_data_handler( $this-&gt;parser, 'feed_cdata' );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 24:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 25: 	//xmllib 2.7.0 -2.7.2 stripping leading angle brackets bug patch
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 26:   if(LIBXML_DOTTED_VERSION == '2.7.0' ||
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 27:   LIBXML_DOTTED_VERSION == '2.7.1' ||
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 28:   LIBXML_DOTTED_VERSION == '2.7.2' ||
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 29:   LIBXML_DOTTED_VERSION == '2.7.3'
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 30:   ){
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 31:   $source =str_replace(&quot;&amp;lt;&quot;,&quot;&amp;#60;&quot;,$source );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 32:   $source =str_replace(&quot;&amp;gt;&quot;,&quot;&amp;#62;&quot;,$source );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 33:   $source =str_replace(&quot;&amp;amp;&quot;,&quot;&amp;#38;&quot;,$source );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 34:   }
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 35:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 36:   $status = xml_parse( $this-&gt;parser, $source );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 37:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 38: 	if (! $status ) {
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 39: 		$errorcode = xml_get_error_code( $this-&gt;parser );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 40: 		if ( $errorcode != XML_ERROR_NONE ) {
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 41: 			$xml_error = xml_error_string( $errorcode );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 42: 			$error_line = xml_get_current_line_number($this-&gt;parser);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 43: 			$error_col = xml_get_current_column_number($this-&gt;parser);
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 44: 			$errormsg = &quot;$xml_error at line $error_line, column $error_col&quot;;
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 45:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 46: 			$this-&gt;error( $errormsg );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 47: 		}
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 48: 	}
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 49:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 50: 	xml_parser_free( $this-&gt;parser );
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 51:
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #ffffff"> 52: 	$this-&gt;normalize();
</pre>
<pre style="font-size: 12px; margin: 0em; width: 100%; font-family: consolas,&#39;Courier New&#39;,courier,monospace; background-color: #fbfbfb"> 53: }</pre>
</pre>
<p>Untuk memudahkan, saya memberikan ketiga file tersebut yang telah dimodifikasi dalam bentuk zip. Cukup diekstrak &amp; di upload dengan FTP ke root directory blog anda.</p>
<p><div class="note"><div class="notewarning">Patch yang saya berikan hanya untuk WordPress 2.7.1. Jika anda menggunakan WP versi lain, upgrade terlebih dahulu atau patch manual dengan cara di atas! </div></div></p>
<p><div class="note"><div class="notetip">Backup ketiga file tersebut sebelum di patch. Jika ternyata bermasalah, cukup upload kembali file backup tersebut. </div></div></p>
<p>Download WordPress libxml patch: <a href="http://www.blaszta.com/upload/wp_libxml_patch.zip" target="_blank">wp_libxml_pacth.zip</a> (23.45 KB).</p>
<p>Referensi:</p>
<ul>
<li><a title="http://josephscott.org/archives/2008/12/problems-with-libxml2-for-wordpress-xml-rpc-users/" href="http://josephscott.org/archives/2008/12/problems-with-libxml2-for-wordpress-xml-rpc-users/">http://josephscott.org/archives/2008/12/problems-with-libxml2-for-wordpress-xml-rpc-users/</a></li>
<li><a title="http://josephscott.org/archives/2009/02/update-on-libxml2-issues/" href="http://josephscott.org/archives/2009/02/update-on-libxml2-issues/">http://josephscott.org/archives/2009/02/update-on-libxml2-issues/</a></li>
<li><a title="http://blog.hoofoo.net/2009/01/14/wordpress-patch-for-problamatic-libxml2-version/" href="http://blog.hoofoo.net/2009/01/14/wordpress-patch-for-problamatic-libxml2-version/">http://blog.hoofoo.net/2009/01/14/wordpress-patch-for-problamatic-libxml2-version/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.blaszta.com/blog/2009/02/bug-ketika-menggunakan-wp-271-dan-windows-live-writer/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Aktivasi Threaded Comment di WordPress 2.7</title>
		<link>http://www.blaszta.com/blog/2008/12/aktivasi-threaded-comment-di-wordpress-27/</link>
		<comments>http://www.blaszta.com/blog/2008/12/aktivasi-threaded-comment-di-wordpress-27/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 02:23:01 +0000</pubDate>
		<dc:creator>blaszta</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Tip & Tricks]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.blaszta.com/blog/2008/12/19/aktivasi-threaded-comment-di-wordpress-27/</guid>
		<description><![CDATA[Image by teddY-riseD via Flickr WordPress 2.7 memiliki beberapa fitur baru, seperti yang saya jelaskan pada tulisan sebelumnya. Salah satu yang menarik adalah Threaded (nested) Comment. Apakah itu? Secara singkatnya, and bisa membalas sebuah komentar langsung pada box komentar tersebut. Hal ini sangat berguna jika sebuah tulisan memiliki banyak komentar, namun anda ingin memberi balasan [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="display: block; float: right; margin: 1em; width: 250px"><a href="http://www.flickr.com/photos/44742295@N00/2496109349"><img style="border-right: medium none; border-top: medium none; display: block; border-left: medium none; border-bottom: medium none" height="220" alt="Simply Something Sophisicated - a WordPress poster" src="http://farm4.static.flickr.com/3063/2496109349_949c62ec2b_m.jpg" width="240"></a>
<p class="zemanta-img-attribution" style="font-size: 0.8em">Image by <a href="http://www.flickr.com/photos/44742295@N00/2496109349">teddY-riseD</a> via Flickr</p>
</div>
<p>WordPress 2.7 memiliki beberapa fitur baru, seperti yang saya jelaskan pada <a href="http://www.blaszta.com/blog/2008/12/12/wordpress-27-dirilis/" target="_blank">tulisan sebelumnya</a>. Salah satu yang menarik adalah <em>Threaded (nested) Comment</em>. Apakah itu? Secara singkatnya, and bisa membalas sebuah komentar langsung pada box komentar tersebut. Hal ini sangat berguna jika sebuah tulisan memiliki banyak komentar, namun anda ingin memberi balasan komentar di bagian awal atau tengah.</p>
<p><span id="more-193"></span>
<p><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="465" alt="tmpA62F" src="http://www.blaszta.com/blog/wp-content/uploads/2008/12/windowslivewriteraktivasithreadedcommentdiwordpress27-7660tmpa62f-3.png" width="508" border="0"></p>
<p>Dari gambar di atas (diambil dari komentar tulisan tentang <a href="http://www.blaszta.com/blog/2008/12/16/evernote-akses-catatan-dari-mana-saja/" target="_blank">Evernote</a>), terlihat bahwa dengan Threaded Comment sangat berguna untuk memperjelas struktur dari komentar. WordPress 2.7 mendukung hingga maksimum 10 tingkat kedalaman.</p>
<p>Lalu apa syarat menggunakan fitur ini? Hanya ada 2:</p>
<ol>
<li>Mengaktifkan Fitur Threaded Comment
<li>Menggunakan Theme yang mendukung Threaded Comment</li>
</ol>
<p>Syarat pertama cukup mudah. Anda cukup masuk ke halaman admin blog anda dan klik menu Setting &gt; Discussion, dan beri tanda centang pada fitur ini.</p>
<p><a href="http://www.blaszta.com/blog/wp-content/uploads/2008/12/windowslivewriteraktivasithreadedcommentdiwordpress27-7660thread-comment-2.jpg" rel="lightbox"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="216" alt="thread_comment" src="http://www.blaszta.com/blog/wp-content/uploads/2008/12/windowslivewriteraktivasithreadedcommentdiwordpress27-7660thread-comment-thumb.jpg" width="504" border="0"></a> </p>
<p>Syarat kedua sedikit lebih rumit, terutama jika Theme yang anda gunakan belum mendukung Threaded Comment. Terdapat 3 pilihan untuk anda:</p>
<ol>
<li>Update Theme (siapa tahu sudah ada versi baru yang mendukung Threaded Comment).
<li>Mengganti Theme dengan yang sudah mendukung Threaded Comment.
<li>Update theme secara manual untuk mendukung fitur ini.</li>
</ol>
<p>Cara pertama merupakan yang paling mudah, jika si pembuat telah mengeluarkan versi terbaru dan mendukung Threaded Comment. Jika anda menggunakan Theme dari <a href="http://themehybrid.com/themes" target="_blank">ThemeHybrid</a>, semua theme mereka sudah diupdate untuk mendukung fitur ini. Cara kedua relatif mudah, namun menemukan Theme yang sesuai selera anda dan mendukung Threaded Comment mungkin susah-susah gampang. Kebetulan saya masuk kategori ini, dan theme <a href="http://thebuckmaker.com/category/aeros/" target="_blank">Aeros</a> yang digunakan pada blog ini sudah mendukung fitur ini.</p>
<p>Cara ketiga yang paling rumit, namun jika anda membuat Theme sendiri, cara ini yang harus anda tempuh. Namun jangan takut, sudah ada beberapa tutorial untuk melakukannya:</p>
<ul>
<li><a title="http://www.bloggingtips.com/2008/12/07/wordpress-27-theme-enhancements-iii/" href="http://www.bloggingtips.com/2008/12/07/wordpress-27-theme-enhancements-iii/">http://www.bloggingtips.com/2008/12/07/wordpress-27-theme-enhancements-iii/</a>
<li><a title="http://ottodestruct.com/blog/2008/09/29/wordpress-27-comments-enhancements/" href="http://ottodestruct.com/blog/2008/09/29/wordpress-27-comments-enhancements/">http://ottodestruct.com/blog/2008/09/29/wordpress-27-comments-enhancements/</a></li>
</ul>
<p>Selamat mencoba!</p>
</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px"><a class="zemanta-pixie-a" title="Zemified by Zemanta" href="http://reblog.zemanta.com/zemified/40e0c91a-97ea-4375-ac8f-e19e0d8919ef/"><img class="zemanta-pixie-img" style="border-right: medium none; border-top: medium none; float: right; border-left: medium none; border-bottom: medium none" alt="Reblog this post [with Zemanta]" src="http://img.zemanta.com/reblog_e.png?x-id=40e0c91a-97ea-4375-ac8f-e19e0d8919ef"></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.blaszta.com/blog/2008/12/aktivasi-threaded-comment-di-wordpress-27/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
	</channel>
</rss>

