<?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>Ax. [at] WP</title>
	<atom:link href="http://wp.xhezairi.com/feed" rel="self" type="application/rss+xml" />
	<link>http://wp.xhezairi.com</link>
	<description>WordPress and Web Development Tips for Ninjas. I evangelize and I&#039;m really good at it. I&#039;m always right, whole right and nothing but right. So help me God.</description>
	<lastBuildDate>Thu, 02 Sep 2010 20:05:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>10 tips for a usable website (slides)</title>
		<link>http://wp.xhezairi.com/10-tips-for-usable-website.html</link>
		<comments>http://wp.xhezairi.com/10-tips-for-usable-website.html#comments</comments>
		<pubDate>Thu, 02 Sep 2010 19:51:56 +0000</pubDate>
		<dc:creator>Arian Xhezairi</dc:creator>
				<category><![CDATA[Whiteboard]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[principles]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[web design]]></category>

		<guid isPermaLink="false">http://wp.xhezairi.com/?p=419</guid>
		<description><![CDATA[Tweet Usability, we hear it everywhere, read it everywhere and usually we tend to forget its real importance when it comes to planning a good usable web site design. Usability is all about making web sites that way to not make the end user think too much while navigating in and out a web page. [...]]]></description>
			<content:encoded><![CDATA[<div style="float: left; margin: 5px 15px 5px 20px;"><a name="fb_share" type="button_count" share_url="http://wp.xhezairi.com/10-tips-for-usable-website.html"></a></div><div style="float: left; clear: both; margin: 10px 0px 0px 20px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fwp.xhezairi.com%2F10-tips-for-usable-website.html" style="display: inline-block; width: 55px; height: 20px; background-color: #cce4f3; line-height: 20px; text-align: center; border: 1px solid #7ab8df;">Tweet</a></div><p><a href="http://wp.xhezairi.com/wp-content/uploads/2010/09/usability.jpg"><img src="http://wp.xhezairi.com/wp-content/uploads/2010/09/usability-260x226.jpg" alt="usability" title="usability" width="260" height="226" class="alignright size-medium wp-image-420" /></a> Usability, we hear it everywhere, read it everywhere and usually we tend to forget its real importance when it comes to planning a good <em>usable</em> web site design.</p>
<p>Usability is all about making web sites that way to not make the end user think too much while navigating in and out a web page. It&#8217;s all about ease of use and clear using techniques.  So it is of a high importance to take into good consideration all the details for a web site you are creating, let that be your own or your client&#8217;s.</p>
<p>&nbsp;</p>
<p>Before you move along, please click the buttons on the left, share it on Facebook, even a Tweet is very much appreciated. Spread the word, let others know about it and thanks.</p>
<p>&nbsp;</p>
<p>If you would read the WikiPedia article about <a href="http://en.wikipedia.org/wiki/Usability">usability</a>, this is what is says:</p>
<blockquote><p>In design, <strong>usability</strong> is the study of the ease with which people can employ a particular tool or other human-made object in order to achieve a particular goal.</p></blockquote>
<p><span id="more-419"></span><br />
The main intention of this blog is regarding web development, but I will overrule that principle from time to time, in order to offer you the coolest tips on everything that would improve your critical thinking ability when you are planing a web design and development project. So far, I&#8217;ve came to realize that once one familiarizes oneself with the principles, it will come to the understanding that things will turn into a habit, of course, while you deal with the ideal stuff on a daily basis.</p>
<p>WikiPedia again, describes very efficiently the key points of the usability notion.</p>
<blockquote><p>The primary notion of usability is that an object designed with a generalized users&#8217; psychology and physiology in mind is, for example:</p>
<ul>
<li>More efficient to use — it takes less time to accomplish a particular task</li>
<li>Easier to learn — operation can be learned by observing the object</li>
<li>More satisfying to use</li>
</ul>
</blockquote>
<p>You may now already have an idea of what I am talking about, so in that contest I found something quite useful in the interwebs today and I am sharing it with you, which is supposed to take your understanding on usability to the next level.</p>
<p>Couple of slides (actually it&#8217;s not just a couple, 91 slides to be more precise) from <a href="http://www.slideshare.net/netlash">Bart De Waele</a> which are thought to cover the principles and considerations when it comes to designing a beautiful usable web site. Enjoy as you read along.</p>
<h3>10 tips for a usable website</h3>
<div style="width:600px" id="__ss_479732"><object id="__sse479732" width="600" height="480"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=10tipsen-1214138095074275-8&#038;rel=0&#038;stripped_title=10-tips-for-a-usable-website" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse479732" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=10tipsen-1214138095074275-8&#038;rel=0&#038;stripped_title=10-tips-for-a-usable-website" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="600" height="480"></embed></object>
<div style="padding:5px 0 12px"></div>
</div>
<p>Let me know in the comments if you found anything that you enjoyed learning from it.<br />
<small>Image courtesy of http://blog.avangate.com</small></p>
]]></content:encoded>
			<wfw:commentRss>http://wp.xhezairi.com/10-tips-for-usable-website.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A new design coming on xhezairi.com</title>
		<link>http://wp.xhezairi.com/new-design-coming-on-xhezairi-com.html</link>
		<comments>http://wp.xhezairi.com/new-design-coming-on-xhezairi-com.html#comments</comments>
		<pubDate>Mon, 30 Aug 2010 00:13:34 +0000</pubDate>
		<dc:creator>Arian Xhezairi</dc:creator>
				<category><![CDATA[Whiteboard]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[giveaway]]></category>
		<category><![CDATA[home page]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://wp.xhezairi.com/?p=416</guid>
		<description><![CDATA[TweetHello there Web Ninja, it&#8217;s been&#8230; let me see, 9 days since my last post was published and I&#8217;ve missed to take care of this area here as it deserves to. Now, life is good, and things are going just great, I keep my fingers crossed for a similar flow in the upcoming days. As [...]]]></description>
			<content:encoded><![CDATA[<div style="float: left; margin: 5px 15px 5px 20px;"><a name="fb_share" type="button_count" share_url="http://wp.xhezairi.com/new-design-coming-on-xhezairi-com.html"></a></div><div style="float: left; clear: both; margin: 10px 0px 0px 20px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fwp.xhezairi.com%2Fnew-design-coming-on-xhezairi-com.html" style="display: inline-block; width: 55px; height: 20px; background-color: #cce4f3; line-height: 20px; text-align: center; border: 1px solid #7ab8df;">Tweet</a></div><p>Hello there Web Ninja, it&#8217;s been&#8230; let me see, 9 days since my last post was published and I&#8217;ve missed to take care of this area here as it deserves to. Now, life is good, and things are going just great, I keep my fingers crossed for a similar flow in the upcoming days.</p>
<p>As the title of this post indicates, I am working on a brand new unique design for my <a href="http://www.xhezairi.com">www.xhezairi.com</a> home page, as it in its current state doesn&#8217;t really offer any thorough information. During this process I&#8217;ve realized couple of important things, but the most important one I understood is my uncomfortable decision making feeling when it comes to creating something for myself. I am struggling so much that I still can&#8217;t decide for the final look. Made two different designs already, which vary in colors and concept, however I don&#8217;t feel yet satisfied to the level where I could decide to slice it and turn it into a living web page.<br />
<span id="more-416"></span><br />
<a href="http://wp.xhezairi.com/wp-content/uploads/2010/08/1-home_d.jpg"><img src="http://wp.xhezairi.com/wp-content/uploads/2010/08/1-home_d-260x398.jpg" alt="" title="Design Concept 1" width="260" height="398" class="alignleft size-medium wp-image-417" /></a><br />
<a href="http://wp.xhezairi.com/wp-content/uploads/2010/08/Home_d.jpg"><img src="http://wp.xhezairi.com/wp-content/uploads/2010/08/Home_d-260x279.jpg" alt="" title="Design Concept 2" width="260" height="279" class="alignright size-medium wp-image-418" /></a></p>
<div class="fix"></div>
<p>Good news is, there are couple of very interesting articles coming up, and I know I&#8217;ve never asked you before but I will ask you now to <a href="http://feeds.feedburner.com/axwp">subscribe to my feed</a> in order to stay tuned with the freshness that will conquer this place.</p>
<p>More good news. What is that you should be expecting from this new design I am speaking of, is couple of interesting things. I will definitely be making it in complete HTML5 and CSS3, I ought to. Then, I am looking to make it completely unique, I like current web trends but a change is always welcomed. I already have my third concept in mind, but it seems quite challenging and I should take a closer look and familiarize more with jQuery chaining functionality.</p>
<p>Regardless of my situation, I have to make an announcement. On behalf of my redesign act I have decided to give away three free things.</p>
<ol>
<li> I will give away a one-page web template, good for personal portfolios or small web design agencies. Take a look of it below, or visit the live demo at <a href="http://www.poentastudios.com/">www.PoentaStudios.com</a></li>
<li> I have created my first WordPress plugin and I will make it available to the public when the new design is intact. I know there are dozen like it, but I don&#8217;t care I&#8217;m just putting mine out there, regardless. It is almost finished, just have to implement my <a href="http://wp.xhezairi.com/add-tweetmeme-rt-and-fb-like-button-no-slow-page-loads.html">after DOM is load technique</a>.</li>
<li> I have decided to also give away my current blog theme that you are actually seeing here. It is not some sort of jaw-dropper, however some of you might want to check it out simply out of curiosity. I am doing this since the new blog look should be conform the new design&#8217;s criteria.</li>
</ol>
<p>Even more good news, finally I am to the point where I&#8217;m thinking of moving http://wp.xhezairi.com/ to a new directory and that would be http://www.xhezairi.com/blog but I would like to hear your thoughts on this one though. I may be cleaning my blogs content a little bit, get rid of old posts and leave behind only those that add real value to the site in its main purpose.</p>
<p>Last and not least, I am very seriously considering to move from WordPress to another platform, not that I don&#8217;t like WordPress anymore, but I&#8217;m getting a little suspicious about it, since in the last month I&#8217;ve experienced two <a href="http://wp.xhezairi.com/move-wordpress-blog-to-new-domain-my-way.html">WP infections</a>. Don&#8217;t know whether it&#8217;s my host (mt) or WordPress itself. At this stage can&#8217;t blame either one, by any means.</p>
<p><a href="http://www.flickr.com/photos/poenta/4371744824/" title="Poenta_v1 by Poenta, on Flickr"><img src="http://farm3.static.flickr.com/2802/4371744824_8739ee959b_b.jpg" width="609" height="1024" alt="Poenta_v1" /></a></p>
<p>Let me know of your thoughts by expressing yoruself in the comments, I am quite willing to read your opinions on everything I cited above. Till then, have a good one and God bless.</p>
]]></content:encoded>
			<wfw:commentRss>http://wp.xhezairi.com/new-design-coming-on-xhezairi-com.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>What is comments-popup.php, how and when to use it?</title>
		<link>http://wp.xhezairi.com/what-is-comments-popup-php-how-and-when-to-use-it.html</link>
		<comments>http://wp.xhezairi.com/what-is-comments-popup-php-how-and-when-to-use-it.html#comments</comments>
		<pubDate>Sat, 21 Aug 2010 05:42:34 +0000</pubDate>
		<dc:creator>Arian Xhezairi</dc:creator>
				<category><![CDATA[Whiteboard]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[comments-popup.php]]></category>
		<category><![CDATA[hierarchy]]></category>
		<category><![CDATA[popup]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://wp.xhezairi.com/?p=412</guid>
		<description><![CDATA[Tweet There is this comments-popup.php file inside my personal theme&#8217;s folder which I didn&#8217;t really pay any attention for, not until last night at least. To the best of my memory, almost every WordPress theme out there comes with a similar file so I guess it has been inherited over from the good old WordPress [...]]]></description>
			<content:encoded><![CDATA[<div style="float: left; margin: 5px 15px 5px 20px;"><a name="fb_share" type="button_count" share_url="http://wp.xhezairi.com/what-is-comments-popup-php-how-and-when-to-use-it.html"></a></div><div style="float: left; clear: both; margin: 10px 0px 0px 20px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fwp.xhezairi.com%2Fwhat-is-comments-popup-php-how-and-when-to-use-it.html" style="display: inline-block; width: 55px; height: 20px; background-color: #cce4f3; line-height: 20px; text-align: center; border: 1px solid #7ab8df;">Tweet</a></div><p><img src="http://wp.xhezairi.com/wp-content/uploads/2010/08/comment-box-okcancel-260x196.jpg" alt="Comments Popup Window" title="comment-box-okcancel" width="260" height="196" class="alignright size-medium wp-image-413" /> There is this <em>comments-popup.php</em> file inside my personal theme&#8217;s folder which I didn&#8217;t really pay any attention for, not until last night at least. To the best of my memory, almost every WordPress theme out there comes with a similar file so I guess it has been inherited over from the good old WordPress Classic Theme or let that be the previous default famous Kubrick.</p>
<p>Before going any further I will execute a conditional statement here, the result will be based on your choice.<br />
<strong>&lt;?php if (you are the WordPress Ninja) : ?&gt;</strong> who hasn&#8217;t yet found out the usage or importance of comments-popup.php then read along and enlighten yourself. I myself am enlightened now thanks to a guy named Hafiz Rahman for this <a href="http://playworkplay.com/blog/understanding-comments-popupphp/">clearly written article</a>.<br />
<strong>&lt;?php else : ?&gt;</strong> you have never heard or seen comments-popup.php before and you like to carry on living that way, then you can either ignore this post and <a href="http://wp.xhezairi.com/add-tweetmeme-rt-and-fb-like-button-no-slow-page-loads.html">read</a> <a href="http://wp.xhezairi.com/how-to-list-top-commentators-wordpress-without-plugin.html">something</a> <a href="http://wp.xhezairi.com/wordpress-feature-idea-no-self-ping-implementation.html">else</a>, or publicly declare that you will stab yourself on the back with a closing curly bracket. <strong>&lt;?php endif; ?&gt;</strong><br />
<span id="more-412"></span><br />
Frankly, I must admit there are very few pages in the WordPress Documentation dubbed Codex that I didn&#8217;t scan through or read thoroughly. I&#8217;ve also gone long ago through all WordPress <a href="http://codex.wordpress.org/Theme_Development">Theme Development</a> articles, and even <a href="http://codex.wordpress.org/Template_Hierarchy">Template Hierarchy</a> file list, nowhere has my eye spotted a single line speaking about comments-popup.php. You won&#8217;t be able either, so don&#8217;t hammer yourself because still nothing has changed there.</p>
<h3>OK, so what does it do and how to use it?</h3>
<p><em>comments-popup.php</em> does exactly what the name implies, it creates a pop-up windows with the comment form and comments regarding one particular article, the thing is you have to enable it somewhere, in order to pop the comments window up. Like almost everything else, it is also theme dependent. What this means is that first you should have a file named <em>comments-popup.php</em> inside your theme folder with some code structure in it of course, and second in your <em>index.php</em> should be a line similar to this one (usually you can look for it around posts-meta calls):</p>
<pre class="brush: php; light: true;">&lt;?php comments_popup_link('No comments', '1 Comment', '% Comments'); ?&gt;</pre>
<p>If you answer true on both and you still want to try this feature out, open <em>header.php</em> with your favorite code editor, or use WordPress build-in theme editor (<strong>Administration Panel -> Appearance -> Editor</strong>) and exactly before <strong>&lt;?php wp_head(); ?&gt;</strong> paste this new line:</p>
<pre class="brush: php; light: true;">&lt;?php comments_popup_script(); ?&gt;</pre>
<p>With this action you&#8217;ve <a href="http://codex.wordpress.org/FAQ_Working_with_WordPress#Can_I_have_popup_comments.3F">enabled comments pop-up</a> window. You may refresh your blog&#8217;s index now and see where you have the comments number per article displayed, hover on it and look down at your browser&#8217;s status bar you should see the hyper-link is different from what it used to be. Try clicking it and the pop-up window will splash right in front of your face.</p>
<p>Above you read the part where tell how I found out comments-popup.php purpose, and how I test its usage, because I&#8217;m not using it here, no way. In the following paragraph I show you, to the best of my usability skills, what would the most appropriate scenarios be of using this nasty pop-up window.</p>
<h3>When should you use it?</h3>
<p>I go by the principle of calling pop-up windows disgusting. Not everybody shares the same opinion here of course, but the main reason why I dislike them is their surprising ability. Pop-up windows are not only usually blocked by most modern browsers, but they tend to cause distraction, meaning they take away your (my) focus from the main page content, and I also personally disfavor them for surprising me unpleasingly (chrome shows this word as misspelled, huh?). Nevertheless, in terms of usability I strongly believe that a site visitor should be able to have control over his/her personal surfing experience. So don&#8217;t use popups.</p>
<p>There are certain situations, however, where using a pop-up window may spare you from loading a new page for the sake of usage, requires a little research and brain to find that descent spot and situation. Comments-popup.php&#8217;s intention would be one of those situations. Below I will list two different occasions where enabling this function to your readers would be cool enough (or not cool at all &#8211; make sure you do a poll afterwards and ask for their feedback).</p>
<ol>
<li>If on your blog home you show a full article content instead of the excerpt, then clicking the article just to open it on it&#8217;s own because of the comment form would be a little stupid. I grant you authority to enable comments pop-up window in this situation.</li>
<li>On your blog you post links to other sites, a photo-blog, video-blog without 500 words of text, again I grant you authority to enable it.</li>
</ol>
<p>It wasn&#8217;t that hard you see, just find the right moment, have your reasons, and just do it. Although, I strongly recommend you take into consideration certain aspects of usability in your site, and put yourself into the position of being your own sites visitor sometimes. Remember if it might look reasonable to you, not necessarily would look the same to your loyal reader, and you created your site/blog not for yourself.</p>
<p>Eventually, for those of you who don&#8217;t have a comments-popup.php file inside you themes, <a href="http://wp.xhezairi.com/files/comments-popup.zip">grab a copy of <strong>WordPress Classic Theme comments-popup.php file</strong></a> and then go fishing. CSS styling that is.</p>
<p>So tell me, have you heard about this before? Did you know what it was meant for? Did you know how to enable it?<br />
Are you using it now after you&#8217;ve learned how to? Use the comment form below to express yourself, I am keen to read your story. </p>
]]></content:encoded>
			<wfw:commentRss>http://wp.xhezairi.com/what-is-comments-popup-php-how-and-when-to-use-it.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>10 Functions Every WordPress Theme Developer Should Consider</title>
		<link>http://wp.xhezairi.com/10-functions-every-wordpress-theme-developer-should-consider.html</link>
		<comments>http://wp.xhezairi.com/10-functions-every-wordpress-theme-developer-should-consider.html#comments</comments>
		<pubDate>Sun, 08 Aug 2010 19:22:24 +0000</pubDate>
		<dc:creator>Arian Xhezairi</dc:creator>
				<category><![CDATA[Whiteboard]]></category>
		<category><![CDATA[custom functions]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[functions.php]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wpninja]]></category>

		<guid isPermaLink="false">http://wp.xhezairi.com/?p=407</guid>
		<description><![CDATA[TweetTo carry on with my quest on world domination called WordPress and Web Development Tips for Ninjas, I am putting together a collection of 10 functions that have proven to be very useful to me while developing my WordPress Themes, themes that currently lie in my local server and unluckily never made it to public. [...]]]></description>
			<content:encoded><![CDATA[<div style="float: left; margin: 5px 15px 5px 20px;"><a name="fb_share" type="button_count" share_url="http://wp.xhezairi.com/10-functions-every-wordpress-theme-developer-should-consider.html"></a></div><div style="float: left; clear: both; margin: 10px 0px 0px 20px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fwp.xhezairi.com%2F10-functions-every-wordpress-theme-developer-should-consider.html" style="display: inline-block; width: 55px; height: 20px; background-color: #cce4f3; line-height: 20px; text-align: center; border: 1px solid #7ab8df;">Tweet</a></div><p>To carry on with my quest on world domination called <strong>WordPress and Web Development Tips for Ninjas</strong>, I am putting together a collection of 10 <em>functions</em> that have proven to be very useful to me while developing my WordPress Themes, themes that currently lie in my local server and unluckily never made it to public. Well, one made it at least and you can take a sneak peak of it by visiting <a href="http://www.shkurteshqip.com/">www.shkurteshqip.com</a> (it&#8217;s my other blog which was thought to be in Albanian, can&#8217;t seem to have the time for both, not right now at least).</p>
<p>Some functions you&#8217;ll find here were put together by me, when otherwise the source is stated and a link to its origin is provided. All WordPress PHP code is GPL after all. So here you have them, whether you already have had your shot on theme development, or a novice who just started into this business and giving it a first try, scan through the list and take now, what may come to good use the next day.<br />
<span id="more-407"></span><br />
Note: All functions below are expected to be put in your theme&#8217;s <em>functions.php</em> file, there are additional instructions, however, when a certain functions needs to be called from within any other theme file.</p>
<h3>1. Add Theme Native Thumbnail Support</h3>
<p>The <a href="http://codex.wordpress.org/Function_Reference/add_theme_support">add_theme_support</a> function, initially has been introduced in WP 2.9 and couple of new features has been added to it in the last 3.0 version.<br />
By calling it in functions.php file, we tell WordPress what a particular theme is capable of.<br />
To use WordPress native functionality for thumbnails we simply put this single line in.</p>
<pre class="brush: php; light: true;">add_theme_support('post-thumbnails');</pre>
<p>Now you&#8217;ll be able to use all new functionality regarding thumbnails. You can echo a posts thumbnail by putting this next line in your index.php, or single.php, or even page.php file.</p>
<pre class="brush: php; light: true;"> if (has_post_thumbnail()) { the_post_thumbnail(); } </pre>
<p>Other features that can be enabled by this function are:</p>
<ul>
<li>&#8216;custom-header&#8217;</li>
<li>&#8216;custom-background&#8217;</li>
<li>&#8216;menus&#8217;</li>
<li>&#8216;automatic-feed-links&#8217;</li>
<li>&#8216;editor-style&#8217;</li>
</li>
</ul>
<p>A note on adding support for menus though. There is no need to use add_theme_support(&#8216;menus&#8217;) if you plan to register custom menus for your theme. For more details see list number 3 below in this post.</p>
<p>Related read: <a href="http://markjaquith.wordpress.com/2009/12/23/new-in-wordpress-2-9-post-thumbnail-images/">Post Thumbnail Images</a> by Mark Jaquith</p>
<h3>2. Remove WordPress Meta Generator Tag</h3>
<p>This may sound a little arrogant and sort of not playing fair to WordPress, but it is recommended you disable this particular meta tag as a security measure. Most of us as WordPress users show in the footers how proud we are for using WordPress, so removing this meta tag wouldn&#8217;t really do any harm to anyone. Go ahead and put yourself in peace, copy and paste this one-line below to your <em>functions.php</em> bottom.</p>
<pre class="brush: php; light: true;">remove_action('wp_head', 'wp_generator');</pre>
<h3>3. Enable Custom Menus</h3>
<p>Custom Menus is a new feature introduced in WordPress 3.0. It allows us as the name indicates to create custom menus for use in different scenarios and places in our theme. Its plain benefit to us is the possibility of customization. You can include what you want, order the new menus as you want and include it wherever you see it fit. For instance you can create a menu which lists only specific tags of your desire, create a combination of categories, tags, pages and custom links, etc.</p>
<pre class="brush: php;">
function register_wpninja_menus() {
	register_nav_menus(
	array(
		'tag-menu' =&gt; __( 'Tags Menu' ),
		'cat-menu' =&gt; __( 'Categories menu' )
		)
	);
}
add_action( 'init', 'register_wpninja_menus' );
</pre>
<p>The function above will tell WordPress to register native support for custom menus with your theme, then you go on configuring them from the administration panel, it is located under <strong>Appearance</strong> menu called <strong>Menus</strong> to be more precise.</p>
<p>We then display the menu we just registered by placing <a href="http://codex.wordpress.org/Function_Reference/wp_nav_menu">wp_nav_menu</a> in our header, or wherever we like to display our new created menu.</p>
<pre class="brush: php; light: true;">&lt;?php wp_nav_menu(); ?&gt;</pre>
<p>Related read: <a href="http://justintadlock.com/archives/2010/06/01/goodbye-headaches-hello-menus">Goodbye, headaches. Hello, menus!</a> by Jastin Tadlock</p>
<h3>4. Load jQuery and Custom Script</h3>
<p>Every WordPress comes bundled with a variety of JavaScript Frameworks. To avoid possible conflicts that may arise later, and remove two or three lines of &lt;script&gt; tags from our header.php, we can create this dead simple function and our desired JS framework will be loaded in our theme, including any custom .js files we need.</p>
<pre class="brush: php;">
//Load jQuery and My Custom Script
function wpninja_jquery() {
	if (!is_admin()) {
		wp_deregister_script('jquery');
		wp_enqueue_script('jquery');
		wp_enqueue_script('init_script', get_bloginfo('template_url') . '/scripts/script.js', array('jquery'), '1.0', true);
	}
}
add_action('init', 'wpninja_jquery');
</pre>
<h3>5. Theme Localization</h3>
<p>The popularity of WordPress and the vast availability of themes, gives WP users an ocean of possibilities to choose from and satisfy their desire. Making a theme translatable is a key feature for every theme developer who decides to release his/her theme to the public.</p>
<p>Enabling localization is easy, but localizing a theme is a little bit of boring. See this 5 lines of code below and check the <em>related read</em> link for a more in-depth walk-through on how to translate WordPress themes.</p>
<pre class="brush: php;">
load_theme_textdomain( 'wpninja', TEMPLATEPATH.'/languages' );
$locale = get_locale();
$locale_file = TEMPLATEPATH.&quot;/languages/$locale.php&quot;;
if ( is_readable($locale_file) )
	require_once($locale_file);
</pre>
<p>Related read: <a href="http://www.catswhocode.com/blog/how-to-make-a-translatable-wordpress-theme">How to Make a Translatable WordPress Theme</a> by Jean-Baptiste Jung</p>
<h3>6. Change Post Excerpt Length and More Link Output</h3>
<p>This might not be very crucial one, however, there are scenarios where you need to have a certain number of characters for each post excerpt depending on your theme&#8217;s layout. You can alter the excerpt <em>length</em> and excerpt <em>Read More</em> link output with ease.</p>
<pre class="brush: php;">
// Changing excerpt character length
function ninja_excerpt_length($length) {
  return 100;
}
add_filter('excerpt_length', 'ninja_excerpt_length');

// Changing excerpt more
function ninja_excerpt_more($more) {
return '%u2026';
}
add_filter('excerpt_more', 'ninja_excerpt_more');
</pre>
<h3>7. Block Spam Comments</h3>
<p>Undeniably, Akismet is an excellent plugin. If it wasn&#8217;t for Akismet, we would be spending more time on our blogs getting rid of spam comments rather then being concerned with more valuable things. This neat little function will serve just as an add-on to your comment spam protection filter. Simply paste it in your functions file and forget it.</p>
<pre class="brush: php;">
//Block Spam Comments
function check_referrer() {
    if (!isset($_SERVER['HTTP_REFERER']) || $_SERVER['HTTP_REFERER'] == &quot;&quot;) {
        wp_die( __('Please enable referrers in your browser, or, if you\'re a spammer, bugger off!') );
    }
}
add_action('check_comment_flood', 'check_referrer');
</pre>
<h3>8. Subscribe Reminder</h3>
<p>A simple Subscribe Reminder by which we can ask our readers politely to subscribe to our blog. This small message will be displayed at the very bottom of every post.</p>
<pre class="brush: php;">
function subscribe_remind($content) {
	if ( !is_feed() &amp;&amp; !is_page() &amp;&amp; is_single() )
	$content .= '&lt;div class=&quot;subscribes&quot;&gt;
        &lt;p&gt;If you enjoyed this post, please consider &lt;a href=&quot;http://feeds2.feedburner.com/axwp&quot;&gt;subscribing to my RSS feed.&lt;/a&gt;&lt;br /&gt; &lt;strong&gt;Thank You!&lt;/strong&gt;&lt;/div&gt;';
	return $content;
}
add_filter('the_content', 'subscribe_remind', 999);
</pre>
<h3>9. Add a Custom Field Automatically on Post/Page Publish</h3>
<p>I am a big fan of WP-Views plugin by LesterChan. But when I first stumbled on this snippet, I felt love at first sight.<br />
So basically, automatically adding a views custom field every time a post/page is published would be the descent scenario to explain the good use of it. What else does this mean? Well, it means one plugin less in your blog, and I seriously acknowledge that.</p>
<pre class="brush: php;">
add_action('publish_page', 'add_custom_field_automatically');
add_action('publish_post', 'add_custom_field_automatically');
function add_custom_field_automatically($post_ID) {
	global $wpdb;
	if(!wp_is_post_revision($post_ID)) {
		add_post_meta($post_ID, 'field-name', 'custom value', true);
	}
}
</pre>
<p><strong>Source:</strong> <a href="http://wpcanyon.com/tipsandtricks/adding-a-custom-field-automatically-on-postpage-publish/"><strong>wpCanyon</strong></a></p>
<h3>10. WordPress Breadcrumbs</h3>
<p>I can&#8217;t honestly remember where I took this function from, but I like it for doing just what is says. Plain and simple, use breadcrumbs on your theme without activating yet another plugin, just put this in your <em>functions.php</em> file.</p>
<pre class="brush: php;">
//Function Breadcrumbs &gt;&gt;
function the_breadcrumb($post_ancestors) {
    if (is_home()) {
        echo '&lt;a href=&quot;';
        echo get_option('home');
        echo '&quot;&gt;Home&lt;/a&gt; &amp;raquo; ';
        if (is_category() || is_single()) {
            the_category('title_li=');
            if (is_single()) {
                echo &quot; &amp;gt; &quot;;
                the_title();
            }
         } elseif (is_page()) {
            foreach($post_ancestors AS $value) {
                echo &quot;&lt;a href='&quot;.get_permalink($value).&quot;'&gt;&quot;.get_the_title($value).&quot;&lt;/a&gt; &amp;gt; &quot;;
            }
            echo the_title();
        }
    }
}
</pre>
<p>To display your breadcrumbs in your header, or anywhere you like call the new breadcrumbs function with the post ancestor parameter.</p>
<pre class="brush: php; light: true;">&lt;?php the_breadcrumb(get_post_ancestors($post_ID)); ?&gt;</pre>
<p>Theme Development know to be really challenging sometimes, the above was from what I found to be useful in certain occasions. Hope you find any of this useful and might come to good use to you anyhow.<br />
Do you have any other simple function you use quite often? Have you ever tweaked any of the above for better performance?<br />
Express it in the comments, I am thrilled to read you views on this. </p>
]]></content:encoded>
			<wfw:commentRss>http://wp.xhezairi.com/10-functions-every-wordpress-theme-developer-should-consider.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How To List Top Commentators in WordPress Without A Plugin</title>
		<link>http://wp.xhezairi.com/how-to-list-top-commentators-wordpress-without-plugin.html</link>
		<comments>http://wp.xhezairi.com/how-to-list-top-commentators-wordpress-without-plugin.html#comments</comments>
		<pubDate>Wed, 28 Jul 2010 14:09:07 +0000</pubDate>
		<dc:creator>Arian Xhezairi</dc:creator>
				<category><![CDATA[Whiteboard]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[gravatar]]></category>
		<category><![CDATA[no-plugin]]></category>
		<category><![CDATA[top commentators]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp]]></category>
		<category><![CDATA[wpninja]]></category>

		<guid isPermaLink="false">http://wp.xhezairi.com/?p=403</guid>
		<description><![CDATA[TweetI have always been a big fan of extended functionality, but never a big fan of means to extend by using plugins. Not that plugins are bad, but usually they have the tendency of slowing things down, and that is something not to commend. In the other hand, for the &#8216;unfortunate&#8217; luck of WordPress being [...]]]></description>
			<content:encoded><![CDATA[<div style="float: left; margin: 5px 15px 5px 20px;"><a name="fb_share" type="button_count" share_url="http://wp.xhezairi.com/how-to-list-top-commentators-wordpress-without-plugin.html"></a></div><div style="float: left; clear: both; margin: 10px 0px 0px 20px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fwp.xhezairi.com%2Fhow-to-list-top-commentators-wordpress-without-plugin.html" style="display: inline-block; width: 55px; height: 20px; background-color: #cce4f3; line-height: 20px; text-align: center; border: 1px solid #7ab8df;">Tweet</a></div><p>I have always been a big fan of extended functionality, but never a big fan of means to extend by using plugins. Not that plugins are bad, but usually they have the tendency of slowing things down, and that is something not to commend. In the other hand, for the &#8216;unfortunate&#8217; luck of WordPress being so popular, there are so many plugins in the repository, I suspect there is a developer in the world who hasn&#8217;t created his own. I&#8217;m thinking whether my grand-mother has developed one yet. Not everything that shines is gold.</p>
<p>After reading <a href="http://intelligines.com/blog/2010/07/5-wordpress-plugins-to-keep-your-happy-commentators-happier/">this write up</a> by Gines, I suggested <a href="http://intelligines.com/blog/2010/07/5-wordpress-plugins-to-keep-your-happy-commentators-happier/comment-page-1/#comment-531">not to</a> always rely on plugins, instead try to avoid them where possible. Although he makes a good point when says:</p>
<blockquote><p>But for our friends who’s not in to coding, queries, development, plugins will have to do.</p></blockquote>
<p>Anyway, as I challenged myself towards it, I jumped on and started to write my own Top Commentators function so I could list them on the sidebar. Surprisingly <a href="http://ma.tt/">Matt</a> listed as second top commenter, and it is a bit odd you know.<br />
<span id="more-403"></span><br />
Now if you (as I) want to list your blogs Top Commentators lets go on and do some coding.  Fire up your favorite code editor and open your themes function.php file in it.</p>
<p>Initially we need to create our function, I called it top_commentators() as its intention clearly indicates.</p>
<pre class="brush: php; light: true;">
function top_commentators($show = 5){
</pre>
<p>Next step we globalize <strong>$wpdb</strong> <em>class</em> for our use, and execute our query to retrieve the required information from the database.</p>
<pre class="brush: php; first-line: 4; highlight: [6,7,19,20,21];">
	//Globalize $wpdb class
	global $wpdb;
        //check for function results cache
        if (false === ( $comments = get_transient('comments') ) ) {
	//Execute Query and Store Results
	$comments = $wpdb-&amp;gt;get_results('
		SELECT COUNT(comment_author_email) AS comments_count,
		comment_author_email, comment_author, comment_author_url
		FROM '.$wpdb-&amp;gt;comments.'
		WHERE
			user_id != 1 AND comment_approved = 1
			AND comment_type = &amp;quot;&amp;quot; AND comment_author_email != &amp;quot;&amp;quot;
		GROUP BY comment_author_email
		ORDER BY comments_count DESC, comment_author ASC
		LIMIT '.$show );
    //Store cache in Database with 24 hours expiration time
    set_transient('comments', $comments, 60*60*24);
}
</pre>
<p>Some explanation might be necessary here. Note where the <strong>WHERE</strong> clause starts and the following code. I apply some restrictions here, first I use <strong>user_id != 1</strong> to filter myself off the list, then I check <strong>comment_approved = 1</strong> whether the comment is approved, then again I tell to look for comments <strong>comment_type = &#8220;&#8221;</strong> that are actual comments, not <em>trackbacks</em> or <em>pingbacks</em> and <strong>= &#8220;&#8221;</strong> looks for <em>comments</em> by default, no need to write the word within the quotes. And finally I ask <strong>comment_author_email != &#8220;&#8221;</strong> not to be blank. You can remove some or apply more if you wish.<br />
The code from the above block, will execute the SQL statement and store it in the <strong>$comments</strong> variable as an array.</p>
<p>Finally, we need to organize our information structure, how we want to list them.<br />
I chose <strong>div > p</strong> over <strong>ul > li</strong> combination just because I can.</p>
<pre class="brush: php; first-line: 22;">
	//Prepare HTML Output Structure
	$output = '&amp;lt;div id=&amp;quot;topcommentators&amp;quot;&amp;gt;&amp;lt;h3&amp;gt;Top Commentators&amp;lt;/h3&amp;gt;';

	//Loop through found records
	foreach($comments as $comment){

	//Check if Commenter has provided a Website URL
	//if YES, link his/her info his/her site URL
    if($comment-&amp;gt;comment_author_url){
		$output .= '&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;'.$comment-&amp;gt;comment_author_url.'&amp;quot; title=&amp;quot;'.$comment-&amp;gt;comment_author.'&amp;quot;&amp;gt;'.get_avatar($comment-&amp;gt;comment_author_email, $size='24', $default='', $comment-&amp;gt;comment_author).' '.$comment-&amp;gt;comment_author.' ('.$comment-&amp;gt;comments_count.')&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;'.PHP_EOL;
    }
    else { //If Commenter hasn't provided an URL to his site then display the rest of the information
		$output .= '&amp;lt;p&amp;gt;'.get_avatar($comment-&amp;gt;comment_author_email, $size='24', $default='', $comment-&amp;gt;comment_author).' '.$comment-&amp;gt;comment_author.' ('.$comment-&amp;gt;comments_count.')&amp;lt;/p&amp;gt;'.PHP_EOL;
      }
    }
	//End HTML Output
	$output .= '&amp;lt;/div&amp;gt;';
	//Print results in the browser
	echo $output;
}
</pre>
<p>Basically, this is the easy part. After we retrieve the information we store the information into the <strong>$output</strong> variable and finally we <strong>echo</strong> everything to its own place. I was forced to do an <em>if {} else</em> check, because <em>$comment->comment_author_url</em> would return home blogs URL in case the comment author didn&#8217;t put his own. That was weird though. And we show the commentators&#8217; Gravatar if there is one, or the default is returned.</p>
<p>Now, of course this doesn&#8217;t do anything on it&#8217;s own, so we need to call it anywhere we want to show our valued TOP Commentators who make our blogs look so neat and useful, and trustworthy, and worth spending our time, and much more.</p>
<p>Go ahead now, put this <strong>&lt;?php top_commentators(); ?&gt;</strong> wherever you want to list your TOP FIVE. I decided sidebar, yours can be footer or anywhere else on your blog. You can, however, alter the returned number of top comment authors to your satisfaction, say 10 for instance, simply by adding a desired value to the function:<br />
<strong>&lt;?php top_commentators(10); ?&gt;</strong></p>
<p>And last but doubtlessly not least, comes the CSS part where we &#8220;fancyfy&#8221; the output. Here&#8217;s what I used, change it to fit you best.</p>
<pre class="brush: css;">
div#topcommentors p {
	margin: 0 0 5px;
	padding: 0;
	border-bottom: 1px dashed #ccc;
}
div#topcommentors p:hover { background: #f1f1f1; }
</pre>
<p>That was all it took to get what we wanted, in our own without activating YAMP (Yet Another More Plugin).<br />
Let me know if it worked for you, if any troubles arise while trying to realize this on your own, just send me a nudge in the Comment form below. I&#8217;d try to assist you as best as I can.</p>
<p>And this would be the complete top_commentators() function code, just in case.</p>
<pre class="brush: php; highlight: [7,8,22,23,24];">
//Top Comment Authors
function top_commentators($show = 5){

	//Globalize $wpdb class
	global $wpdb;

        //check for function results cache
        if (false === ( $comments = get_transient('comments') ) ) {	

	//Execute Query and Store Results
	$comments = $wpdb-&amp;gt;get_results('
		SELECT COUNT(comment_author_email) AS comments_count,
		comment_author_email, comment_author, comment_author_url
		FROM '.$wpdb-&amp;gt;comments.'
		WHERE
			user_id != 1 AND comment_approved = 1
			AND comment_type = &amp;quot;&amp;quot; AND comment_author_email != &amp;quot;&amp;quot;
		GROUP BY comment_author_email
		ORDER BY comments_count DESC, comment_author ASC
		LIMIT '.$show );

    //Store cache in Database with 24 hours expiration time
    set_transient('comments', $comments, 60*60*24);
}
	//Prepare HTML Output Structure
	$output = '&amp;lt;div id=&amp;quot;topcommentors&amp;quot;&amp;gt;&amp;lt;h3&amp;gt;Top Commentors&amp;lt;/h3&amp;gt;';

	//Loop through found records
	foreach($comments as $comment){

	//Check if Commenter has provided a Website URL
	//if TRUE, show URL and the rest of the information
    if($comment-&amp;gt;comment_author_url){
		$output .= '&amp;lt;p&amp;gt;&amp;lt;a href=&amp;quot;'.$comment-&amp;gt;comment_author_url.'&amp;quot; title=&amp;quot;'.$comment-&amp;gt;comment_author.'&amp;quot;&amp;gt;'.get_avatar($comment-&amp;gt;comment_author_email, $size='24', $default='', $comment-&amp;gt;comment_author).' '.$comment-&amp;gt;comment_author.' ('.$comment-&amp;gt;comments_count.')&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;'.PHP_EOL;
    }
    else { //If Commenter hasn't provided an URL to his site then display the rest of the information
		$output .= '&amp;lt;p&amp;gt;'.get_avatar($comment-&amp;gt;comment_author_email, $size='24', $default='', $comment-&amp;gt;comment_author).' '.$comment-&amp;gt;comment_author.' ('.$comment-&amp;gt;comments_count.')&amp;lt;/p&amp;gt;'.PHP_EOL;
      }
    }
	//End HTML Output
	$output .= '&amp;lt;/div&amp;gt;';
	//Print results in the browser
	echo $output;
} //End Function
</pre>
<p><strong>Download this function in a file</strong>: <a href="http://wp.xhezairi.com/files/function_topcomentators.zip">Function Top Commentators</a></p>
<p><strong>Update:</strong> Thanks to our friend Pepe for asking in the comments, I&#8217;ve added two more lines in the second and final code blocks. Now it checks for cache if exists in Database, if not it&#8217;ll set a cache and an expiration time. This means the query will be executed once in 24 hours. You should see two new rows in <em>wp_options</em> table <em>_transient_timeout_comments</em> and <em>_transient_comments</em>. </p>
]]></content:encoded>
			<wfw:commentRss>http://wp.xhezairi.com/how-to-list-top-commentators-wordpress-without-plugin.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Moving WordPress Blog To a New Domain Without Losing Traffic</title>
		<link>http://wp.xhezairi.com/move-wordpress-blog-to-new-domain-my-way.html</link>
		<comments>http://wp.xhezairi.com/move-wordpress-blog-to-new-domain-my-way.html#comments</comments>
		<pubDate>Thu, 22 Jul 2010 09:24:44 +0000</pubDate>
		<dc:creator>Arian Xhezairi</dc:creator>
				<category><![CDATA[Whiteboard]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[domain]]></category>
		<category><![CDATA[exploit]]></category>
		<category><![CDATA[mediatemple]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<category><![CDATA[redirect]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://wp.xhezairi.com/?p=397</guid>
		<description><![CDATA[Tweet Last week, MediaTemple servers got exploited. It was pointed out that target where sites with one or more WordPress installations. Whether you were hosted on a (mt) (gs) or (dv) server, no exception were made whatsoever. Certainly, I had the &#8216;joyful opportunity&#8217; and was lucky enough to get the injection, which was hidden behind [...]]]></description>
			<content:encoded><![CDATA[<div style="float: left; margin: 5px 15px 5px 20px;"><a name="fb_share" type="button_count" share_url="http://wp.xhezairi.com/move-wordpress-blog-to-new-domain-my-way.html"></a></div><div style="float: left; clear: both; margin: 10px 0px 0px 20px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fwp.xhezairi.com%2Fmove-wordpress-blog-to-new-domain-my-way.html" style="display: inline-block; width: 55px; height: 20px; background-color: #cce4f3; line-height: 20px; text-align: center; border: 1px solid #7ab8df;">Tweet</a></div><p><img src="http://wp.xhezairi.com/wp-content/uploads/2010/07/wordpress-260x244.png" alt="WordPress Target" title="WordPress Target" width="200" height="184" class="alignright size-medium wp-image-398" /> Last week, <a href="http://weblog.mediatemple.net/weblog/category/system-incidents/1404-wordpress-redirect-exploit/">MediaTemple servers got exploited</a>. It was pointed out that target where sites with one or more WordPress installations. Whether you were hosted on a (mt) (gs) or (dv) server, no exception were made whatsoever. Certainly, I had the &#8216;joyful opportunity&#8217; and was lucky enough to get the injection, which was hidden behind a &lt;script&gt; tag, at the end of every single post and/or page in the database. Injecting the malware script in the posts was very impressive (I pat the hacker in the back), as nothing happened whenever an infected site&#8217;s home page loaded, so it was impossible to sniff anything strange around. Nevertheless, once a reader clicked a post/page title, he/she would have been redirected to the infection injecting site, in about the next one or two seconds. It wasn&#8217;t quite pleasing tho, but sometimes this things give you a fun experience, like for instance spending half of the day trying to put order back again in the sweet Grid-Server (I headbutt the hacker, badly).<br />
<span id="more-397"></span><br />
Fortunately, it all <a href="http://wiki.mediatemple.net/w/WordPress_Redirect_Exploit">came well</a> to the end, but I was so hasty that I clean installed all my WordPresses. After realizing that all did was completely unnecessary, I decided to move iTechnologize.net to this other domain of mine for good. I am not writing this article to express my condolences to neither MediaTemple or show how touched I felt. Instead, I want to tell you the procedures I went through, to moving WP from one domain to another. Keep in mind that this is not going to be an exhaustive list, so I&#8217;ll just walk you through the process quickly and easily I hope, and in the end I&#8217;ll show you what I did to redirect the domain and all my posts to cope with the new permalink structure I am using now. I am fully aware that you might have read a zillion articles regarding this, however this is the way I did it, and would do it over and over again. It&#8217;s a little risky hence it&#8217;s not recommended you try it at home, just on clients, because I want them to work with me now.</p>
<p>P.S. the steps are very concise but not detailed, so I expect you have a little or some experience with maintaining a server, using phpMyAdmin and FTP. But you can <a href="http://wp.xhezairi.com/move-wordpress-blog-to-new-domain-my-way.html#comments">ask questions</a> if more explanation is necessary. I&#8217;ll be glad to mess your head even more.</p>
<h3>1. Backup</h3>
<p>So you&#8217;ve got your new domain (location) up and running. Now first things first, I&#8217;ve seen many people tell to back-up all the files. I honestly don&#8217;t find it necessarily important to do that especially when you do a move. There are, however, some files that need to be temporarily saved for the next installation. Here&#8217;s a short and simple list of my considerations for back-up.</p>
<ul>
<li><strong>wp-config.php</strong> is the important one, but only when I plan to use the existing database.</li>
<li>everything that lies within <strong>wp-content</strong> folder. Thus, plugins, themes and uploads folder.<br />
But of course it all depends on your folder structure (i.e. where is <strong>uploads</strong> folder, any other files you use outside your theme&#8217;s folder, etc.).</li>
<li>What you must exclusively backup is the <strong>database</strong> of course, but indeed that is a no-brainer.</li>
</ul>
<p>That would basically suffice for the next move.<br />
But when I speak of backing up the database, here you might want to consider two alternatives. Both rely on different scenarios.</p>
<ol>
<li>Use <strong>phpMyAdmin</strong> to export your current database, if you plan to use the same in your new location,</li>
<li>Use <strong>Tools > Export</strong> if you want to preserve the existing content only; posts, pages, tags, categories etc. This means, however, you will lose all other settings, so you will have to reconfigure everything.</li>
</ol>
<p>One more thing here and we&#8217;re done! In order to save you some minutes of frustration later, a good thing to do at this point would be changing some site configuration values. Log in to your old site&#8217;s WordPress Admin, click on <strong>Settings > General</strong> and change your <strong>WordPress address (URL)</strong> and <strong>Blog address (URL)</strong> to point to your new domain name. Doing this will spare you a <strong>WTF?!</strong> surprise, at the point when everything is ready on your new site, you try to login to you WP admin panel, and all of a sudden you get redirected back to the old site. If by any chance you forget to accomplish this move at this stage, don&#8217;t shit your pans because the same can be done later through phpMyAdmin with a simple SQL statement.</p>
<pre class="brush: sql;">//update WordPress options with the new blog location:

UPDATE wp_options SET option_value = replace(option_value, 'http://www.itechnologize.net', 'http://wp.xhezairi.com') WHERE option_name = 'home' OR option_name = 'siteurl';
</pre>
<p>And that&#8217;s it, export your database now, selecting either of two alternatives above.</p>
<h3>2. Prepare Your New Site</h3>
<p>Now if you didn&#8217;t setup your new site before, now is a good time to make it ready.<br />
The usual steps would consist of:</p>
<ol>
<li>New-Domain.com NS change so it directs to your host,</li>
<li>Create the <strong>database</strong></li>
<li>WordPress Installation &#8211; download, extract and upload files, or use the famous 1-Click installer if your hosts provides one,</li>
<li>Upload/Overwrite all your backed up files from the old-domain.com</li>
<li><strong>Tools > Import</strong> your content, or <strong>phpMyAdmin > Import SQL</strong> file,</li>
<li>Setup any vital changes if necessary.</li>
</ol>
<p>Now, before moving further, I have to tell you that up until now you&#8217;re almost ready to start freshened with the new location. Make sure your new site is configured an running smoothly, simply by loading the new-domain page on your browser. If everything seems right, you&#8217;ve got your posts and pages there, what you must do now is update old site links with the new ones. This can be achieved very easily, again simply by using phpMyAdmin.</p>
<pre class="brush: sql;">
UPDATE wp_posts SET post_content = replace(post_content, 'http://www.itechnologize.net', 'http://wp.xhezairi.com');
</pre>
<p>Navigate around on your new site a little, just to confirm whether links are okay and site is loading the content properly. If you consider it to be fine, then you&#8217;re ready to go on the final step, and that is the most attractive one.<br />
To me at least.</p>
<h3>3. Finalizing &#8211; 301 Permanent Redirect</h3>
<p>And you&#8217;re ready to move along, except for one last thing. We don&#8217;t want the old domain to generate any more traffic. That is the intention of the move of course, else why would we want to deal with all this boring steps, it would be all in vain. So at this stage, we do a <strong>301 Permanent Redirect</strong> on the old site, and this is the case where we preserve all the traffic value and tell the search engine that we&#8217;ve moved for good.<br />
The 301 Redirect can be achieved by putting this lines in a index.php file</p>
<pre class="brush: php;">
&lt;?php
Header( &quot;HTTP/1.1 301 Moved Permanently&quot; );
Header( &quot;Location: http://www.new-site.com&quot; );
?&gt;
</pre>
<p>but I prefer using .htaccess over PHP in this situations, for one good reason only. <strong>RegEx</strong><br />
Open Notepad or any other plain text editor of choice, and copy / paste the lines below in it.</p>
<pre class="brush: plain;">
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://wp.xhezairi.net/$1 [R=301,L]
</pre>
<p>If you&#8217;re on Windows, save the file with a name of your choice, because you won&#8217;t be able to name it <strong>.htacccess</strong>, Windows doesn&#8217;t allow naming a file only by it&#8217;s extension. Upload it to your public folder and rename it to the required name (<em>.htaccess</em>), but you know that already. Don&#8217;t forget to replace my domain with yours, or you can even leave it just like it is, and I may thank you for that one day.</p>
<p>I first put this file in the root folder of itechnologize.net (which is my old domain), and in my case is <strong>html</strong> (or <em>public_html</em> depending on your host). This would redirect all the old domain traffic and all sub-directories to same directory structure on wp.xhezairi.com (my new domain). And I can see you go crazy about it now, because it seems so easy with just three lines of code, and you&#8217;re so happy about it.</p>
<p>But what if during the move, you&#8217;ve decided (like I did) to change the permalink structure of your posts, and make a better change in your new blog. &#8220;I want to make my permalinks more SEO this time&#8221; you say, and you don&#8217;t want to lose the traffic, an old post link should redirect to the original post regardless of its new permalink structure.<br />
I hear you.</p>
<p>In my situation, my permalink structure used to be like the following:<br />
<em><strong>http://www.itechnologize.net/20090301/mediatemple-cluster-2-incident-itechnologize-offline-for-6-hours/</strong></em><br />
I changed it to <em><strong>http://wp.xhezairi.com/mediatemple-cluster-2-incident-itechnologize-offline-for-6-hours.html</strong></em></p>
<p>You see, I got rid of the date part and the trailing slash at the end of the URL, plus I added the .html suffix to it. So I wanted to redirect new visitors here, those who find my old saved posts by searching in Google.<br />
This is the .htaccess file I had to write in order to redirect all the permalink transformation and preserve the traffic for my new site.</p>
<pre class="brush: plain;">
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([0-9]+)/(.*)/$ http://wp.xhezairi.com/$2.html [R=301,L]
</pre>
<p>The Regular Expression above is simple and easy. What it basically tells the browser is this:</p>
<ul>
<li><strong>^</strong> &#8211; Start of line anchor (the .htaccess file lies within the old domain so it knows its location,</li>
<li><strong>([0-9]+)</strong> &#8211; Combination of numbers, 1 or N (my published post date remember?)</li>
<li><strong>(.*)</strong> &#8211; Any single character combination, * indicates 0 or N</li>
<li><strong>$</strong> &#8211; End of line anchor</li>
<li>Last, but not least, the domain where to redirect</li>
</ul>
<p>Mark the <strong>$2</strong> characters in the link. It retrieves the value from the second grouping of characters only.<br />
That&#8217;s the part where I got rid of the date numbers.</p>
<p>Finally I patted myself on the back, sat back and drowned in the smoke of a cigar, while staring at the new blog home immensely.</p>
<p>That is it more or less. I encourage you to ask any question you regarding this by using the comment form below, and I am gladly willing to help you, but first let me tell you one more thing.</p>
<p>This article consist of more than 1700 words, that is more than writing a freaky essay. So if you don&#8217;t go ahead to use the Social Buttons and Digg it, Tweet about it or take it to the Buzz, it will break my heart thoroughly, and make me feel like the examiner didn&#8217;t even bother scan through my essay. Then I will be forced to shave your head, and blame <a href="http://ma.tt">Matt</a> for making such a big deal out of the Thesis theme. Or I would blame <a href="http://pearsonified.com">Chris</a> for having such a haughty attitude and being such a great developer. Or eventually I will thank you for the time you took reading it, and for spreading the word and letting the others know about it.</p>
]]></content:encoded>
			<wfw:commentRss>http://wp.xhezairi.com/move-wordpress-blog-to-new-domain-my-way.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Add TweetMeme RT and FB LIKE Button, NO Slow Page Loads</title>
		<link>http://wp.xhezairi.com/add-tweetmeme-rt-and-fb-like-button-no-slow-page-loads.html</link>
		<comments>http://wp.xhezairi.com/add-tweetmeme-rt-and-fb-like-button-no-slow-page-loads.html#comments</comments>
		<pubDate>Tue, 20 Jul 2010 11:29:07 +0000</pubDate>
		<dc:creator>Arian Xhezairi</dc:creator>
				<category><![CDATA[Whiteboard]]></category>
		<category><![CDATA[button]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[if conditional]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[like]]></category>
		<category><![CDATA[retweet]]></category>
		<category><![CDATA[tweetmeme]]></category>

		<guid isPermaLink="false">http://wp.xhezairi.com/?p=394</guid>
		<description><![CDATA[TweetYesterday I was Googling for better ways of inserting TweetMeme&#8217;s Retweet button in a WordPress powered site, because I wasn&#8217;t quite happy with the slow load that the &#60;iframe&#62; caused on my blog, accidentally I stumbled upon this article. Admittedly, there are two things I like about the author of the article in word, ONE [...]]]></description>
			<content:encoded><![CDATA[<div style="float: left; margin: 5px 15px 5px 20px;"><a name="fb_share" type="button_count" share_url="http://wp.xhezairi.com/add-tweetmeme-rt-and-fb-like-button-no-slow-page-loads.html"></a></div><div style="float: left; clear: both; margin: 10px 0px 0px 20px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fwp.xhezairi.com%2Fadd-tweetmeme-rt-and-fb-like-button-no-slow-page-loads.html" style="display: inline-block; width: 55px; height: 20px; background-color: #cce4f3; line-height: 20px; text-align: center; border: 1px solid #7ab8df;">Tweet</a></div><p>Yesterday I was Googling for better ways of inserting TweetMeme&#8217;s Retweet button in a WordPress powered site, because I wasn&#8217;t quite happy with the slow load that the &lt;iframe&gt; caused on my blog, accidentally I stumbled upon <a href="http://www.seomofo.com/wordpress/tweetmeme-retweet-button.html">this article</a>. Admittedly, there are two things I like about the author of the article in word, <strong>ONE</strong> this <a href="http://www.seomofo.com/">SEOmofo</a> guy is very articulated, he explains everything quite reasonably and detailedly, and <strong>TWO</strong> he is the first person in the world I&#8217;ve happened to hear about, who has an attitude very common to mine. And that is, making a public statement, declaring the self-proclamation of being the smartest man alive. I like that.</p>
<p>Now, the method explained by SEOmofo is very adequate when the scenario implies using pure JavaScript. I, however wanted to do the same with the Facebook Like &lt;iframe&gt; button, and as is jQuery (as always) in my case controlling my JavaScript functionality, I had to be flexible and adapt a little.<br />
<span id="more-394"></span><br />
Before you continue reading below, I recommend you take a look at SEOmofo&#8217;s article first, and then you can see what you would like the most. For me, I disliked the <em>window.onload = functionName;</em> since it doesn&#8217;t accept two functions at once, instead one should define an array of function in order to load both of them when the DOM is ready, and I wanted to add Facebook Like button, plus I was already using jQuery, so, well I had to change. That&#8217;s why jQuery is way more sexy than pure JavaScript.</p>
<pre class="brush: jscript; wrap-lines: false;">
//Insert TweetMeme Retweet &amp; Facebook Like button,
//without slow page load lag caused from the &lt;iframe&gt; tag.
if ($('#fb_btn').length &amp;&amp; $('#tw_btn').length) {
  var fb_code = &quot;&quot;;
  var tw_code = &quot;&quot;;

  tw_code += &quot;&lt;iframe src=\&quot;http://api.tweetmeme.com/button.js?url=&quot; + escape(document.URL) + &quot;&amp;amp;style=compact&amp;amp;source=axjezzy&amp;amp;service=bit.ly\&quot; scrolling=\&quot;no\&quot; frameborder=\&quot;0\&quot; width=\&quot;60\&quot; height=\&quot;16\&quot; &gt;&quot;;

  fb_code += &quot;&lt;iframe src=\&quot;http://www.facebook.com/plugins/like.php?href=&quot; + escape(document.URL) +&quot;&amp;amp;layout=button_count&amp;amp;show_faces=false&amp;amp;width=70&amp;amp;action=like&amp;amp;colorscheme=light&amp;amp;height=20\&quot; scrolling=\&quot;no\&quot; frameborder=\&quot;0\&quot; style=\&quot;border:none; overflow:hidden; width:70px; height:20px;\&quot; allowTransparency=\&quot;true\&quot; &gt;&quot;;

  $('#fb_btn').html(fb_code);
  $('#tw_btn').html(tw_code);
}</pre>
<p>Copy and Paste the code above within your jQuery(document).ready() (or $(function() short-tag if you use that)</p>
<pre class="brush: jscript;">
jQuery(document).ready(function($){
//code goes here
}
</pre>
<p>Now what I did is pretty basic. I&#8217;ve just created two &lt;span&gt; tag elements and added them into my theme&#8217;s (not the theme I&#8217;m using here) <em>single.php</em> file (I&#8217;ve put them in the .postmeta div to be precise), one with <strong> id=&#8221;tw_btn&#8221;</strong> and the other with <strong>id=&#8221;fb_btn&#8221;</strong>. Then I&#8217;ve put together the jQuery code you saw above, and all it does is search for those elements by their <em>id</em> and if found it will insert the values assigned to the <em>tw_code</em> and <em>fb_code</em> variables.<br />
In the end, when jQuery realizes that DOM is ready to be manipulated, meaning your page is loaded completely, it will insert those values and you won&#8217;t bear with no slow page load at all.</p>
<p><strong>Why is better this way?</strong><br />
Because, <em>iframe</em> won&#8217;t piss your nerves when Facebook or TweetMeme servers behave bitchy or even are down at all. Eventually, you will either have the buttons, or you won&#8217;t, but the load lag won&#8217;t occur by any means.</p>
<p>P.S. I turned <strong>24 today</strong>! </p>
]]></content:encoded>
			<wfw:commentRss>http://wp.xhezairi.com/add-tweetmeme-rt-and-fb-like-button-no-slow-page-loads.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hello World, for the Second time!</title>
		<link>http://wp.xhezairi.com/hello-world-for-the-second-time.html</link>
		<comments>http://wp.xhezairi.com/hello-world-for-the-second-time.html#comments</comments>
		<pubDate>Sat, 27 Feb 2010 14:08:10 +0000</pubDate>
		<dc:creator>Arian Xhezairi</dc:creator>
				<category><![CDATA[Whiteboard]]></category>
		<category><![CDATA[comeback]]></category>
		<category><![CDATA[doga icin cal]]></category>
		<category><![CDATA[hello]]></category>
		<category><![CDATA[i tech]]></category>
		<category><![CDATA[play for nature]]></category>
		<category><![CDATA[song]]></category>
		<category><![CDATA[world]]></category>

		<guid isPermaLink="false">http://http://wp.xhezairi.com/?p=371</guid>
		<description><![CDATA[TweetIt&#8217;s me speaking again. I am not going to ramble about stuff right now at this very &#8220;first&#8221; post after a century, and bore you with personal things. Just passing by and greeting everyone here. My blogging habits have gone through some serious ups and downs, all was related with primary activities in life. I [...]]]></description>
			<content:encoded><![CDATA[<div style="float: left; margin: 5px 15px 5px 20px;"><a name="fb_share" type="button_count" share_url="http://wp.xhezairi.com/hello-world-for-the-second-time.html"></a></div><div style="float: left; clear: both; margin: 10px 0px 0px 20px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fwp.xhezairi.com%2Fhello-world-for-the-second-time.html" style="display: inline-block; width: 55px; height: 20px; background-color: #cce4f3; line-height: 20px; text-align: center; border: 1px solid #7ab8df;">Tweet</a></div><p>It&#8217;s me speaking again. I am not going to ramble about stuff right now at this very &#8220;first&#8221; post after a century, and bore you with personal things. Just passing by and greeting everyone here. My blogging habits have gone through some serious ups and downs, all was related with primary activities in life. I considered everything and concluded for now that I may be ready to start blogging again, not fully engaged though.<br />
<span id="more-371"></span><br />
The only thing I would like to let you guys know is the launch of our studio&#8217;s single-page site. <a href="http://www.poentastudios.com">Poenta</a>. <del datetime="2010-07-21T11:16:14+00:00">We&#8217;ll preparing a blog there too</del>.</p>
<p>Finally, to formalize this I am putting this <a href="http://www.dogaicincal.com/index.asp?l=2">Play for Nature</a> song and invite you to feel it together with me, wishing for a better world.</p>
<p><object type="application/x-shockwave-flash" data="http://vimeo.com/moogaloop.swf" width="585" height="322"><param name="allowscriptaccess" value="always"/><param name="allowfullscreen" value="true"/><param name="movie" value="http://vimeo.com/moogaloop.swf"/><param name="flashvars" value="clip_id=6902099&amp;color=00adef&amp;fullscreen=1&amp;server=vimeo.com&amp;show_byline=1&amp;show_portrait=1&amp;show_title=1"/></object></p>
]]></content:encoded>
			<wfw:commentRss>http://wp.xhezairi.com/hello-world-for-the-second-time.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Playing For Change &#124; Song Around The World &#8220;Stand By Me&#8221;</title>
		<link>http://wp.xhezairi.com/playing-for-change-song-around-the-world-stand-by-me.html</link>
		<comments>http://wp.xhezairi.com/playing-for-change-song-around-the-world-stand-by-me.html#comments</comments>
		<pubDate>Tue, 28 Apr 2009 19:24:22 +0000</pubDate>
		<dc:creator>Arian Xhezairi</dc:creator>
				<category><![CDATA[Whiteboard]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[playing for a change]]></category>
		<category><![CDATA[stand by me]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://http://wp.xhezairi.com/20090428/playing-for-change-song-around-the-world-stand-by-me/</guid>
		<description><![CDATA[TweetFrom the award-winning documentary, &#34;Playing For Change: Peace Through Music&#34;, comes the first of many &#34;songs around the world&#34; being released independently. Featured is a cover of the Ben E. King classic by musicians around the world adding their part to the song as it travelled the globe. Need not say more?!]]></description>
			<content:encoded><![CDATA[<div style="float: left; margin: 5px 15px 5px 20px;"><a name="fb_share" type="button_count" share_url="http://wp.xhezairi.com/playing-for-change-song-around-the-world-stand-by-me.html"></a></div><div style="float: left; clear: both; margin: 10px 0px 0px 20px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fwp.xhezairi.com%2Fplaying-for-change-song-around-the-world-stand-by-me.html" style="display: inline-block; width: 55px; height: 20px; background-color: #cce4f3; line-height: 20px; text-align: center; border: 1px solid #7ab8df;">Tweet</a></div><p>From the award-winning documentary, &quot;Playing For Change: Peace Through Music&quot;, comes the first of many &quot;songs around the world&quot; being released independently. Featured is a cover of the Ben E. King classic by musicians around the world adding their part to the song as it travelled the globe.</p>
<p><object type="application/x-shockwave-flash" data="http://vimeo.com/moogaloop.swf" width="504" height="336"><param name="allowscriptaccess" value="always"/><param name="allowfullscreen" value="true"/><param name="movie" value="http://vimeo.com/moogaloop.swf"/><param name="flashvars" value="clip_id=2539741&amp;color=00adef&amp;fullscreen=1&amp;server=vimeo.com&amp;show_byline=1&amp;show_portrait=1&amp;show_title=1"/></object></p>
<p>Need not say more?!</p>
]]></content:encoded>
			<wfw:commentRss>http://wp.xhezairi.com/playing-for-change-song-around-the-world-stand-by-me.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Feature Idea: No-self-ping implementation</title>
		<link>http://wp.xhezairi.com/wordpress-feature-idea-no-self-ping-implementation.html</link>
		<comments>http://wp.xhezairi.com/wordpress-feature-idea-no-self-ping-implementation.html#comments</comments>
		<pubDate>Fri, 13 Mar 2009 21:07:59 +0000</pubDate>
		<dc:creator>Arian Xhezairi</dc:creator>
				<category><![CDATA[Whiteboard]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[self-pinging]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp idea]]></category>

		<guid isPermaLink="false">http://http://wp.xhezairi.com/20090313/wordpress-idea-no-self-ping-feature-implementation/</guid>
		<description><![CDATA[No-Self-Ping has been discussed a lot around the interwebs lately, but at the time of writing it is only available as a plug-in. Honestly, pinging your own blog posts is sometimes very annoying, however, some bloggers don’t mind that but some others really do. A feature request for WordPress Blogging Platform.]]></description>
			<content:encoded><![CDATA[<div style="float: left; margin: 5px 15px 5px 20px;"><a name="fb_share" type="button_count" share_url="http://wp.xhezairi.com/wordpress-feature-idea-no-self-ping-implementation.html"></a></div><div style="float: left; clear: both; margin: 10px 0px 0px 20px;"><a href="http://twitter.com/share?url=http%3A%2F%2Fwp.xhezairi.com%2Fwordpress-feature-idea-no-self-ping-implementation.html" style="display: inline-block; width: 55px; height: 20px; background-color: #cce4f3; line-height: 20px; text-align: center; border: 1px solid #7ab8df;">Tweet</a></div><p>Eleven months ago I had <a href="http://wp.xhezairi.com/a-idea-for-a-new-wordpress-feature.html">an idea</a> about a <a href="http://wordpress.org/">WordPress</a> feature which gives a user the opportunity to put blog into <em>maintenance mode</em>, or turning it On/Off in special occasions to be more exact. I didn’t hesitate to suggest it to the public <a href="http://wordpress.org/extend/ideas/topic.php?id=1321">WP community</a>. For eleven months, except good willing WP users, nobody from WordPress team has ever commented or said anything about possibly implementing that in any of the upcoming versions. Indeed, that can be achieved by developing a custom plug-in, but most bloggers (me for sure) tend to avoid activating too many plug-ins because it plods blog performance.</p>
<h4>What about self-pinging?</h4>
<p>Right! I’m sure you should already be aware of what does the term ping stand for in blogging. According to <a href="http://en.wikipedia.org/wiki/Ping_(blogging)">this WikiPedia article</a> ping is:</p>
<blockquote><p><em>In </em><a href="http://en.wikipedia.org/wiki/Blogging"><em>blogging</em></a><em>, <strong>ping</strong> is an </em><a href="http://en.wikipedia.org/wiki/XML-RPC"><em>XML-RPC</em></a><em>-based </em><a href="http://en.wikipedia.org/wiki/Push_technology"><em>push</em></a><em> mechanism by which a </em><a href="http://en.wikipedia.org/wiki/Weblog"><em>weblog</em></a><em> notifies a </em><a href="http://en.wikipedia.org/wiki/Server_%28computing%29"><em>server</em></a><em> that its content has been updated.<sup><a href="http://en.wikipedia.org/wiki/Ping_%28blogging%29#cite_note-orig-post-0">[1]</a></sup> An XML-RPC signal is sent to one or more &#8220;ping servers,&#8221; which can then generate a list of blogs that have new material. Many blog authoring tools automatically ping one or more servers each time the blogger creates a new post or updates an old one.</em></p></blockquote>
<p><span id="more-351"></span><br />
Now there’s this very requested feature (No-Self-Ping) that has been discussed a lot around the interwebs lately, but at the time of writing it is only available as a plug-in. Honestly, pinging your own blog posts is sometimes very annoying, however, some bloggers don’t mind that but some others really do. Hence, thankfully to <a href="http://blogwaffe.com/2006/10/04/421/">No-Self-Ping</a> by Michael Adams, the annoyance is long gone and forgotten. I just had to play around with WP Core files and have modified some of them to add this option in <strong><em>WP-Admin –&gt; Settings –&gt; Discussion Settings</em></strong> for the only reason of not being a fan of <span style="text-decoration: underline;">too-many-activated-plugins</span> at once.</p>
<p><a href="http://wp.xhezairi.com/wp-content/uploads/2009/03/selfpingoption.png"><img style="display: inline; border-width: 0px;" title="self-ping-option" src="http://wp.xhezairi.com/wp-content/uploads/2009/03/selfpingoption-thumb.png" border="0" alt="self-ping-option" width="604" height="148" /></a></p>
<p>Wouldn’t you really appraise a neat feature like that, an optional setting that can be turned on and off based of each of us personal taste.</p>
<p>Now as for No-Self-Ping, it isn’t really a big deal though because it is the smallest plug-in I have ever come across until today, so it wouldn’t really decrease your blog’s performance much. Only seven lines of code for a very useful option.</p>
<pre class="brush: php;">
&amp;lt;?php
function no_self_ping( &amp;amp;amp;amp;$links ) {
$home = get_option( 'home' );
foreach ( $links as $l =&amp;gt; $link )
if ( 0 === strpos( $link, $home ) )
unset($links[$l]);
}
add_action( 'pre_ping', 'no_self_ping' );
?&amp;gt;
</pre>
<p>Seriously I would like to see this feature in the upcoming version WordPress 2.8, it will save our time and it’s nice to just have it there.</p>
<p><em>Where do you stand in this? Do you like pinging your own blog posts, or rather have that thing turned off?</em>  </p>
]]></content:encoded>
			<wfw:commentRss>http://wp.xhezairi.com/wordpress-feature-idea-no-self-ping-implementation.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
