<?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>Blogging Tips &#187; WordPress Coding &amp; Design</title>
	<atom:link href="http://www.bloggingtips.com/category/wordpress/wordpress-coding-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bloggingtips.com</link>
	<description>Blog Themes, Blog Design &#38; Daily Blog Tips</description>
	<lastBuildDate>Sun, 12 Feb 2012 21:05:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Top 10 Web Sites for Hiring WordPress Experts</title>
		<link>http://www.bloggingtips.com/2011/08/02/top-10-websites-for-hiring-wordpress-experts/</link>
		<comments>http://www.bloggingtips.com/2011/08/02/top-10-websites-for-hiring-wordpress-experts/#comments</comments>
		<pubDate>Tue, 02 Aug 2011 20:05:41 +0000</pubDate>
		<dc:creator>Tom Slayer</dc:creator>
				<category><![CDATA[WordPress Coding & Design]]></category>

		<guid isPermaLink="false">http://www.bloggingtips.com/?p=17634</guid>
		<description><![CDATA[With no doubt WordPress is the biggest, best and most popular blogging platform around. Top blogs (BloggingTips too!) use WordPress as the core of their publishing platform, because WordPress offers what other blogging platforms don&#8217;t: flexibility. WordPress&#8217;s powerful engine allows you to run a simple personal weblog, or even build a fully custom framework to run your website on. Lets not forget about the hundreds of thousands plugins and themes which allow you to customize your blog just the way you want to. Now, if you&#8217;re running a blog, eventually the time will come to tune it up with a custom theme, or to modify  the current template  in order to get the look you are looking for; or maybe you would like to implement advanced features. Regardless which of the above fits your requirements, you will have to hire a WordPress expert, a designer or developer who lives for WordPress, and can %100 ...<p></p>
]]></description>
			<content:encoded><![CDATA[<p>With no doubt WordPress is the biggest, best and most popular blogging platform around. Top blogs (BloggingTips too!) use WordPress as the core of their publishing platform, because WordPress offers what other blogging platforms don&#8217;t: <strong><span style="text-decoration: underline;">flexibility</span></strong>.</p>
<p>WordPress&#8217;s powerful engine allows you to run a simple personal weblog, or even build a fully custom framework to run your website on. Lets not forget about the hundreds of thousands plugins and themes which allow you to customize your blog just the way you want to.</p>
<p>Now, if you&#8217;re running a blog, eventually the time will come to tune it up with a custom theme, or to modify  the current template  in order to get the look you are looking for; or maybe you would like to implement advanced features. Regardless which of the above fits your requirements, you will have to hire a WordPress expert, a designer or developer who lives for WordPress, and can %100 get the job done.</p>
<p>Hiring a wordpress expert will remove the hassle and the large number of wasted hours in dealing with amateurs. <strong>Below i&#8217;ve showcased the Top 10 job boards which are constantly browsed by wordpress experts, looking for freelance projects:</strong></p>
<h1><span style="color: #239ddb;">Free to use job boards:</span></h1>
<h2><span style="text-decoration: underline;"><a href="http://jobs.wordpress.net/">1. WordPress.net Job Board</a></span></h2>
<p><img class="alignnone size-full wp-image-17649" title="wpjobs" src="http://www.bloggingtips.com/wp-content/uploads/2011/08/wpjobs.png" alt="" width="600" height="70" /></p>
<p>Jobs.wordpress.net is the official WordPress job board. This job board is updated daily and has a huge wordpress experts audience.</p>
<h2><span style="text-decoration: underline;"><a href="http://www.freelancer.com/jobs/Wordpress/">2. Freelancer.com WordPress Section</a></span></h2>
<p><img class="alignnone size-full wp-image-17653" title="freelancer" src="http://www.bloggingtips.com/wp-content/uploads/2011/08/freelancer.png" alt="" width="600" height="70" /></p>
<p>Even though I hate outsourcing websites, Freelancer.com is a place where you can find great wordpress designers and developers. <em>Quick hint: Pay attention to the feedback score and reviews, and <span style="text-decoration: underline;">always</span> ask for a full portfolio</em>.</p>
<h2><span style="text-decoration: underline;"><a href="http://jobs.smashingmagazine.com/">3. Smashing Jobs</a></span></h2>
<p><img class="alignnone size-full wp-image-17655" title="smashing" src="http://www.bloggingtips.com/wp-content/uploads/2011/08/smashing.png" alt="" width="600" height="70" /></p>
<p>Smashing Jobs is Smashing Magazine&#8217;s job board. The jobs listed here are featured in Smahsing Magazine&#8217;s rss feeds, posts and newsletters, so it&#8217;s definitely worth posting up a job here.</p>
<h2><span style="text-decoration: underline;"><a href="http://jobs.freelanceswitch.com/">4. FreelanceSwitch Job Board</a></span></h2>
<p><img class="alignnone size-full wp-image-17656" title="freelance" src="http://www.bloggingtips.com/wp-content/uploads/2011/08/freelance.png" alt="" width="600" height="70" /></p>
<p>The name speaks for itself. FreelanceSwitch bears the pride of having one of the best freelancer communities around. <em>Note: Freelancers need to pay a small fee to view the jobs.</em></p>
<h2><span style="text-decoration: underline;"><a href="http://www.wphired.com/">5.WP Hired</a></span></h2>
<p><img class="alignnone size-full wp-image-17658" title="wp-hired" src="http://www.bloggingtips.com/wp-content/uploads/2011/08/wp-hired.png" alt="" width="600" height="70" /></p>
<p>WP Hired is one of the best job boards dedicated solely to wordpress.</p>
<h2><span style="text-decoration: underline;"><a href="http://jobs.woothemes.com/">6. WOO Jobs</a></span></h2>
<p><img class="alignnone size-full wp-image-17659" title="woo" src="http://www.bloggingtips.com/wp-content/uploads/2011/08/woo.png" alt="" width="600" height="70" /></p>
<p><a href="http://www.bloggingtips.com/woothemes" style=""  rel="nofollow" onmouseover="self.status='http://www.bloggingtips.com/woothemes';return true;" onmouseout="self.status=''">WooThemes</a> is an authority premium themes website. Even though they sell premium themes, the WOO ninjas were cool enough to create a free to use job board.</p>
<h2><span style="text-decoration: underline;"><a href="http://forums.digitalpoint.com/forumdisplay.php?f=104">7. DigitalPoint Forums Design section</a></span></h2>
<p><img class="alignnone size-full wp-image-17664" title="dp" src="http://www.bloggingtips.com/wp-content/uploads/2011/08/dp.png" alt="" width="600" height="70" /></p>
<p>DigitalPoint Forums is one of the BIGGEST web forums around. With an Alexa traffic rank of 434, this is definitely a place you want to post your ad to. <em>Note: You must be a member for over two weeks and have at least 25 posts to be able to post in the services section.</em></p>
<h1><span style="color: #239ddb;">Premium job boards:</span></h1>
<h2><span style="text-decoration: underline;"><a href="http://www.krop.com/">8. Krop</a></span></h2>
<p><img class="alignnone size-full wp-image-17666" title="krop" src="http://www.bloggingtips.com/wp-content/uploads/2011/08/krop.png" alt="" width="600" height="70" /></p>
<p>Krop is the best place to find top-notch wordpress professionals for your high-budget projects. <strong>$199 for 60 days.</strong></p>
<h2><span style="text-decoration: underline;"><a href="http://www.authenticjobs.com/">9. Authentic Jobs</a></span></h2>
<p><img class="alignnone size-full wp-image-17668" title="authentic" src="http://www.bloggingtips.com/wp-content/uploads/2011/08/authentic.png" alt="" width="600" height="70" /></p>
<p>Authentic Jobs is where companies and creative professionalsmeet to make a better web. Companies like Skype, Apple or even facebook use this job board to find professionals. <strong>$99 for 30 days.</strong></p>
<h2><span style="text-decoration: underline;"><a href="http://www.sensationaljobs.com/">10. Sensational Jobs</a></span></h2>
<p><img class="alignnone size-full wp-image-17670" title="sensational" src="http://www.bloggingtips.com/wp-content/uploads/2011/08/sensational.png" alt="" width="600" height="70" /></p>
<p>Sensational Jobs is a premium job board, which puts a great deal in promoting the job listings on twitter, social networks and email alerts. <strong>$60 for 60 days.</strong></p>
<hr />
<p>There you have it!  The Top 10 best job boards around to post up an ad on your quest to finding a wordpress expert to get either a custom theme or customizations done. If you want to avoid posting a job on public job boards, there is always the option to ask fellow webmasters to refer you to an exceptional wordpress expert.</p>
<p><em><strong>Reminder &#8211;  always do a background check on the designer or developer you are about to hire. Look for references, ask for a full portfolio.</strong></em></p>
<hr>Copyright &copy; 2012 <strong><a href="http://www.bloggingtips.com">Blogging Tips</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please <a href=http://www.bloggingtips.com/contact/>contact us</a> so we can take legal action immediately.<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingtips.com/2011/08/02/top-10-websites-for-hiring-wordpress-experts/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>WordPress 3.1 &#8220;Reinhardt&#8221; Released, New Feautres Added</title>
		<link>http://www.bloggingtips.com/2011/02/24/wordpress-3-1-reinhardt-released-new-feautres-added/</link>
		<comments>http://www.bloggingtips.com/2011/02/24/wordpress-3-1-reinhardt-released-new-feautres-added/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 20:56:34 +0000</pubDate>
		<dc:creator>Jonathan Bailey</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Coding & Design]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[upgrade]]></category>
		<category><![CDATA[wordpress update]]></category>

		<guid isPermaLink="false">http://www.bloggingtips.com/?p=16117</guid>
		<description><![CDATA[For WordPress users all over the world, today has been a pretty busy day as yesterday saw the release of the much-anticipated WordPress 3.1 of the popular blogging platform. Codenamed &#8220;Reinhardt&#8221; after the famous jazz musician Django Reinhardt, the new version not only adds a slew of new features to WordPress but also improves security and usability. But unlike security updates, which should always be applied as soon as practical, this is a version in crease and it may be that many WordPress users will want to hold off on updating, at least until a few bugs are detected and ironed out. However, those who do update now are going to be rewarded with some very compelling features and a lot of smaller improvements that will likely make the risk and effort more than worthwhile. Still, the choice is yours so the best thing you can do is see what&#8217;s ...<p></p>
]]></description>
			<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  src="http://www.bloggingtips.com/wp-content/uploads/2010/12/wordpress-org-logo.jpg" alt="WordPress Logo Image" title="WordPress Logo Image" width="319" height="72" class="alignright size-full wp-image-15405" />For WordPress users all over the world, today has been a pretty busy day as yesterday saw the release of the much-anticipated WordPress 3.1 of the popular blogging platform. Codenamed &#8220;Reinhardt&#8221; after the famous jazz musician Django Reinhardt, the new version not only adds a slew of new features to WordPress but also improves security and usability.</p>
<p>But unlike security updates, which should always be applied as soon as practical, this is a version in crease and it may be that many WordPress users will want to hold off on updating, at least until a few bugs are detected and ironed out. </p>
<p>However, those who do update now are going to be rewarded with some very compelling features and a lot of smaller improvements that will likely make the risk and effort more than worthwhile. Still, the choice is yours so the best thing you can do is see what&#8217;s new and decide if WordPress 3.1 is a version you want and need today.<span id="more-16117"></span></p>
<h3>What&#8217;s New in WordPress 3.1</h3>
<p>According to <a href="https://codex.wordpress.org/Version_3.1">the WordPress Codex</a>, there are a lot of new features to be found, however, here is a quick rundown of some of the more compelling and anticipated new items.</p>
<ul>
<li><strong>Internal Linking:</strong> Available only with the visual editor (which has also been updated) WordPress now offers a &#8220;Link to existing content&#8221; dropdown that lets you easily search for and link to previous posts on your site.</li>
<li><strong>Admin Bar:</strong> When logged into your site and visiting the public page, you&#8217;ll see an admin bar across the top, similar to the one on WordPress.com blogs, that will let you access admin functions directly going to the admin area.</li>
<li><strong>Post Formats:</strong> <a href="https://codex.wordpress.org/Post_Formats">A theme feature</a> that allows posts to include metadata that instructs the themes to display them in a different manner.</li>
<li><strong>Cleaned Up Admin/Writing Interface:</strong> The admin area of WordPress has been streamlined, in particular the writing page. Admin area CSS has also been cleaned up.</li>
<li><strong>Security Updates:</strong> WordPress 3.1 comes with a slew of security updates, including an improved password recovery system.</li>
</ul>
<p>After a full day of playing with WordPress 3.1, I think my favorite of the new features is the admin bar. With one-click access to stats, post/page editing and much more, it&#8217;s a very convenient way to make quick fixes and get updates on your site.</p>
<p><img src="http://www.bloggingtips.com/wp-content/uploads/2011/02/pt-admin-bar-550x81.jpg" alt="" title="pt-admin-bar" width="550" height="81" class="alignnone size-large wp-image-16120" /></p>
<p>The internal linking feature also works very well, though it&#8217;s frustrating that it has to be used with the visual editor. As a die-hard HTML junky, I&#8217;m not sure this will sway me to using the visual editor more, though the revamped TinyMCE is very good.</p>
<p>Since Post Formats and other theme features will require theme support to happen, those who use WordPress 3.1 right now won&#8217;t see much benefit from them. However, as soon as new themes come online to use these features, they could be a boon.</p>
<p>All in all, WordPress 3.1 is a solid release and one that is probably well worth downloading, however, it likely isn&#8217;t for everyone, at least not yet.</p>
<h3>Should You Upgrade?</h3>
<p>Since the Post Formats and other features will be more relevant down the road (though some themes and theme frameworks have already integrated them) the real question is whether features like the admin bar, internal linking and so forth will be valuable to you.</p>
<p>For most, I suspect the answer will be yes. Though they might not be features that set the WordPress world on fire, they are practical and useful tools that will benefit bloggers greatly. Unless you have some clear reason not to upgrade, namely plugins or themes that aren&#8217;t compatible, you probably will want to.</p>
<p>Of course, even if the features themselves aren&#8217;t enough to warrant clicking the &#8220;Upgrade&#8221; link, the security enhancements and more subtle improvements may well push it over the top.</p>
<p>In short, there&#8217;s no single ground-breaking feature in WordPress 3.1, save features that won&#8217;t become truly wonderful until much later, but there are more than enough smaller improvements to make it worthwhile, especially since it only takes a few moments.</p>
<h3>Bottom Line</h3>
<p>If you haven&#8217;t upgraded your WordPress yet, now is a great time to do so. Even if you don&#8217;t get much benefit out of it today, you probably will see some powerful new theme elements come out of it down the road.</p>
<p>However, even the immediate benefits are useful and can provide some real benefit, even if you aren&#8217;t compelled to tell the world about how great they are.</p>
<p>In short, WordPress 3.1 isn&#8217;t so much about completely revolutionizing WordPress, instead, it&#8217;s about setting up for the next series of improvements which, in turn, will set up for the next. </p>
<hr>Copyright &copy; 2012 <strong><a href="http://www.bloggingtips.com">Blogging Tips</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please <a href=http://www.bloggingtips.com/contact/>contact us</a> so we can take legal action immediately.<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingtips.com/2011/02/24/wordpress-3-1-reinhardt-released-new-feautres-added/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Capsis Media Designs Custom Websites</title>
		<link>http://www.bloggingtips.com/2010/08/23/capsis-media-designs-custom-websites/</link>
		<comments>http://www.bloggingtips.com/2010/08/23/capsis-media-designs-custom-websites/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 14:00:12 +0000</pubDate>
		<dc:creator>Michael Kwan</dc:creator>
				<category><![CDATA[Design & Coding]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Coding & Design]]></category>
		<category><![CDATA[WordPress Themes]]></category>
		<category><![CDATA[joomla themes]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[web hosting]]></category>
		<category><![CDATA[web programming]]></category>

		<guid isPermaLink="false">http://www.bloggingtips.com/?p=14664</guid>
		<description><![CDATA[It doesn&#8217;t really matter how good your website content is if no one wants to look at your website in the first place. Part of this has to do with efforts like search engine optimization, but the aesthetic appeal of your website is also very important, not only for user experience but also for branding. Rather than use any number of freely available templates that will make your site look like everyone else&#8217;s, it may be worth considering a custom design from the fine folks at Capsis Media. They offer completely unique site designs to suit just about any purpose. Totally Original Look for a Totally Original Site Whether you run a blog, an online store, or any number of other kinds of websites, you want to stick out from the crowd. With the website design services of Capsis Media, you can achieve just the look you need. Capsis Media ...<p></p>
]]></description>
			<content:encoded><![CDATA[<p>It doesn&#8217;t really matter how good your website content is if no one wants to look at your website in the first place. Part of this has to do with efforts like search engine optimization, but the aesthetic appeal of your website is also very important, not only for user experience but also for branding.</p>
<p>Rather than use any number of freely available templates that will make your site look like everyone else&#8217;s, it may be worth considering a custom design from the fine folks at <a href="http://capsismedia.com/">Capsis Media</a>. They offer completely unique site designs to suit just about any purpose.</p>
<p><strong>Totally Original Look for a Totally Original Site</strong></p>
<p>Whether you run a blog, an online store, or any number of other kinds of websites, you want to stick out from the crowd. With the <a href="http://capsismedia.com/webdesign.php">website design</a> services of Capsis Media, you can achieve just the look you need.</p>
<p><img style=' display: block; margin-right: auto; margin-left: auto;'  src="http://www.bloggingtips.com/wp-content/uploads/2010/08/capsis1.jpg" alt="" title="Capsis Media Designs Custom Websites" width="600" height="312" class="aligncenter size-full wp-image-14665" /></p>
<p>Capsis Media promises &#8220;to create custom websites that present a visual and interactive experience that makes a particular website a true original.&#8221; They don&#8217;t sell templates or set themes that everyone can have. Every creation is a one-off design, so you&#8217;ll know that you are getting something completely unique.</p>
<p>If you need more than just a new design (which can offered as a Joomla template or WordPress theme, should you so desire), you can also opt to make use of the <a href="http://capsismedia.com/programming.php">website development</a> and programming services offered by Capsis Media. Need a certain web app created? They can do that.</p>
<p><strong>Pictures Are Worth Thousands of Words</strong></p>
<p>Just as you would likely ask for writing samples before hiring a <a href="http://michaelkwan.com">freelance writer</a>, you would likely want to see some design samples before hiring someone to create a <a href="http://capsismedia.com/">custom web design</a> for you as well.</p>
<p><img style=' display: block; margin-right: auto; margin-left: auto;'  src="http://www.bloggingtips.com/wp-content/uploads/2010/08/capsis2.jpg" alt="" title="Capsis Media Designs Custom Websites" width="600" height="416" class="aligncenter size-full wp-image-14666" /></p>
<p>For that, you can turn to the <a href="http://capsismedia.com/ourwork.php">portfolio page</a> on the Capsis Media website. Here, you can see a range of different <a href="http://capsismedia.com/">custom websites</a> that they have designed for their clients. Among them are Twitter background images too, which are increasingly important in today&#8217;s branding efforts. </p>
<p>It might be just me, but it seems that a good number of the designs created by Capsis Media make use of the light blue color scheme. This might be a little more than a coincidence, but it could reflect some of the personal artistic style of some of the folks who work at Capsis.</p>
<p><strong>How Much Does It Cost?</strong></p>
<p>Instead of providing a set rate sheet for its custom web design and web programming services, Capsis Media requires you to fill out its <a href="http://www.capsismedia.com/manager/place-quotation-step1.php">rate quote</a> question sheet.</p>
<p><img style=' display: block; margin-right: auto; margin-left: auto;'  src="http://www.bloggingtips.com/wp-content/uploads/2010/08/capsis3.jpg" alt="" title="Capsis Media Designs Custom Websites" width="600" height="366" class="aligncenter size-full wp-image-14667" /></p>
<p>This way, they can better understand your specific needs and preferences. It is notable that there is a banner at the top of the page saying that custom website designs start at $199, but the main homepage makes mention of a $129 starting price. Take that for what it&#8217;s worth.</p>
<p>One very good thing about Capsis is that they offer unlimited revisions on all their design work. If you are not happy with the initial draft, you can continue to request changes and tweaks until you are completely satisfied.</p>
<p>Link: <a href="http://capsismedia.com/">Capsis Media</a></p>
<hr>Copyright &copy; 2012 <strong><a href="http://www.bloggingtips.com">Blogging Tips</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please <a href=http://www.bloggingtips.com/contact/>contact us</a> so we can take legal action immediately.<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingtips.com/2010/08/23/capsis-media-designs-custom-websites/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>HostGator and Fantastico Make WordPress Easy</title>
		<link>http://www.bloggingtips.com/2010/04/28/hostgator-and-fantastico-make-wordpress-easy/</link>
		<comments>http://www.bloggingtips.com/2010/04/28/hostgator-and-fantastico-make-wordpress-easy/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 14:00:31 +0000</pubDate>
		<dc:creator>Michael Kwan</dc:creator>
				<category><![CDATA[Domain Names & Hosting]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress Coding & Design]]></category>
		<category><![CDATA[blog hosting]]></category>
		<category><![CDATA[fantastico]]></category>
		<category><![CDATA[web hosting]]></category>
		<category><![CDATA[wordpress hosting]]></category>

		<guid isPermaLink="false">http://www.bloggingtips.com/?p=13523</guid>
		<description><![CDATA[You hear all kinds of excuses to why someone wont&#8217; get into blogging. Some people say that they have nothing interesting to say. Others say that they don&#8217;t have the time. Others still say that they are intimidated by the terminology and technology. Let&#8217;s face it. Most of us aren&#8217;t coding experts and, for some, even the &#8220;simple&#8221; installation of WordPress can be quite daunting. Thankfully, there are services out there than can streamline the process, making blogging accessible to even the newbiest of newbies. One such service is the WordPress web hosting offered by HostGator. In addition to offering a number of different hosting plans, HostGator also allows for near one-click installation of WordPress. Easy and Affordable Web Hosting I haven&#8217;t used HostGator&#8216;s services myself, but I&#8217;ve heard good things about their reliability and price. For the beginning blogger, the smallest hosting plans (which start at $4.95 a month) ...<p></p>
]]></description>
			<content:encoded><![CDATA[<p>You hear all kinds of excuses to why someone wont&#8217; get into blogging. Some people say that they have nothing interesting to say. Others say that they don&#8217;t have the time. Others still say that they are intimidated by the terminology and technology.</p>
<p>Let&#8217;s face it. Most of us aren&#8217;t coding experts and, for some, even the &#8220;simple&#8221; installation of WordPress can be quite daunting. Thankfully, there are services out there than can streamline the process, making blogging accessible to even the newbiest of newbies.</p>
<p>One such service is the <a href="http://www.bloggingtips.com/hostgator">WordPress web hosting</a> offered by HostGator. In addition to offering a number of different hosting plans, HostGator also allows for near one-click installation of WordPress.</p>
<p><strong>Easy and Affordable Web Hosting</strong></p>
<p><img style=' display: block; margin-right: auto; margin-left: auto;'  src="http://www.bloggingtips.com/wp-content/uploads/2010/04/hostgator1.jpg" alt="" title="HostGator and Fantastico Make WordPress Easy" width="600" height="243" class="aligncenter size-full wp-image-13524" /></p>
<p>I haven&#8217;t used <a href="http://www.bloggingtips.com/hostgator">HostGator</a>&#8216;s services myself, but I&#8217;ve heard good things about their reliability and price. </p>
<p>For the beginning blogger, the smallest hosting plans (which start at $4.95 a month) are probably a good place to start. These allow for plenty of storage space and plenty of bandwidth. Heavier users can look into virtual private servers (VPS) and dedicated servers when the time comes.</p>
<p><strong>What About WordPress?</strong></p>
<p>The main hosting plan offered by HostGator that caters to the WordPress market starts at $7.95 a month. With this price, you are provided with the ability to host unlimited domains, have unlimited disk space, and set up unlimited MySQL databases. </p>
<p><img style=' display: block; margin-right: auto; margin-left: auto;'  src="http://www.bloggingtips.com/wp-content/uploads/2010/04/hostgator2.jpg" alt="" title="HostGator and Fantastico Make WordPress Easy" width="600" height="305" class="aligncenter size-full wp-image-13525" /></p>
<p>I&#8217;m always a little apprehensive about hosts who claim to provide you with unlimited disk space and bandwidth, since that can never be completely true. That said, for the purposes of the average starting blogger, it doesn&#8217;t matter.</p>
<p><strong>WordPress Installations Made Easy</strong></p>
<p>So, what&#8217;s all this talk about an easy one-click installation of WordPress? Under normal circumstances, you would have to manually create your own database, edit the appropriate files in a text editor, and upload the WordPress directories via FTP to your web server. </p>
<p>The process is reasonably straightforward for people who are already savvy to these types of technologies and standards, but they can be intimidating to just about everyone else. To help ease the process, <a href="http://www.bloggingtips.com/hostgator">HostGator</a> offers Fantastico-based installations.</p>
<p><img style=' display: block; margin-right: auto; margin-left: auto;'  src="http://www.bloggingtips.com/wp-content/uploads/2010/04/hostgator3.jpg" alt="" title="HostGator and Fantastico Make WordPress Easy" width="600" height="327" class="aligncenter size-full wp-image-13526" /></p>
<p>When you access your HostGator account via cPanel, you will see an icon designated as Fantastico De Luxe. Clicking on this reveals the page shown above. Rather than going through the manual process of setting up databases and uploading files, Fantastico does the work automatically for you.</p>
<p>This interface is not unique to HostGator &#8212; several other hosts offer Fantastico &#8212; but it is a feature that you&#8217;ll want to look for if you want an easy way to get into &#8220;professional&#8221; blogging with WordPress.</p>
<hr>Copyright &copy; 2012 <strong><a href="http://www.bloggingtips.com">Blogging Tips</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please <a href=http://www.bloggingtips.com/contact/>contact us</a> so we can take legal action immediately.<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingtips.com/2010/04/28/hostgator-and-fantastico-make-wordpress-easy/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Automated WordPress Sites with Page.ly</title>
		<link>http://www.bloggingtips.com/2010/04/05/automated-wordpress-sites-with-page-ly/</link>
		<comments>http://www.bloggingtips.com/2010/04/05/automated-wordpress-sites-with-page-ly/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 14:00:21 +0000</pubDate>
		<dc:creator>Michael Kwan</dc:creator>
				<category><![CDATA[Domain Names & Hosting]]></category>
		<category><![CDATA[WordPress Coding & Design]]></category>
		<category><![CDATA[WordPress Themes]]></category>
		<category><![CDATA[web hosting]]></category>
		<category><![CDATA[WordPress Coding]]></category>
		<category><![CDATA[WordPress Configuration]]></category>
		<category><![CDATA[WordPress Templates]]></category>

		<guid isPermaLink="false">http://www.bloggingtips.com/?p=13318</guid>
		<description><![CDATA[Setting up your own website doesn&#8217;t have to be an overly complicated and frustrating experience. Even if you don&#8217;t know PHP from CSS, even if you don&#8217;t have the faintest idea of why your blog needs a database, let alone knowing how you&#8217;d make one, that should not stop you from having a proper presence on the web. For some people, the standard WordPress installation is a relatively straightforward process, but that&#8217;s not true of everyone. Sometimes, it&#8217;s just easier to hire some elves, give them some cookies, and provide them with the task. That&#8217;s the exact concept behind Page.ly, a complete and simple service that&#8217;ll get you going in the right direction. What Is the Page.ly Service? Rather than going through the process of buying a domain, setting up your web hosting, and configuration a WordPress installation on your own, you can hand over the complete task to Page.ly. ...<p></p>
]]></description>
			<content:encoded><![CDATA[<p>Setting up your own website doesn&#8217;t have to be an overly complicated and frustrating experience. Even if you don&#8217;t know PHP from CSS, even if you don&#8217;t have the faintest idea of why your blog needs a database, let alone knowing how you&#8217;d make one, that should not stop you from having a proper presence on the web.</p>
<p>For some people, the standard WordPress installation is a relatively straightforward process, but that&#8217;s not true of everyone. Sometimes, it&#8217;s just easier to hire some elves, give them some cookies, and provide them with the task. That&#8217;s the exact concept behind <a href="http://www.bloggingtips.com/pagely">Page.ly</a>, a complete and simple service that&#8217;ll get you going in the right direction.</p>
<p><strong>What Is the Page.ly Service?</strong></p>
<p>Rather than going through the process of buying a domain, setting up your web hosting, and configuration a WordPress installation on your own, you can hand over the complete task to Page.ly. In short, it&#8217;s a one-stop shop for your WordPress hosting.</p>
<p><img style=' display: block; margin-right: auto; margin-left: auto;'  src="http://www.bloggingtips.com/wp-content/uploads/2010/04/pagely1.jpg" alt="" title="Automate Your WordPress Site with Page.ly" width="600" height="343" class="aligncenter size-full wp-image-13319" /></p>
<p>When you sign up with Page.ly, you can have a complete WordPress website up and running <a href="http://www.bloggingtips.com/pagely">in just two minutes</a>. Included in the all-inclusive monthly price is your web hosting, a free domain, email service, WordPress installation, automatic backups and upgrades, and compatibility with a range of themes and plugins.</p>
<p>The &#8220;elves&#8221; at Page.ly, as they like to be called, can take care of all the back end administration on your behalf. There are automatic nightly backups and you gain access to 44 free themes, 5GB of hosting, and 20 mailboxes. </p>
<p><img style=' display: block; margin-right: auto; margin-left: auto;'  src="http://www.bloggingtips.com/wp-content/uploads/2010/04/pagely2.jpg" alt="" title="Automate Your WordPress Site with Page.ly" width="600" height="248" class="aligncenter size-full wp-image-13320" /></p>
<p>In addition to the standard features described above, Page.ly is more than happy to sell you a series of &#8220;<a href="http://www.bloggingtips.com/pagely">powerups</a>&#8221; through the integrated service as well. These upgrades include FTP access ($5/month) and <a href="http://www.bloggingtips.com/woothemes" style=""  rel="nofollow" onmouseover="self.status='http://www.bloggingtips.com/woothemes';return true;" onmouseout="self.status=''">WooThemes</a> access ($15/month), for instance. I do find it strange that FTP access is <em>optional</em> and not a <em>standard</em> feature, since it&#8217;s available with all standard web hosting services.</p>
<p><strong>How Much Does It Cost?</strong></p>
<p>There is no contract to sign if you want to get started with Page.ly, but you should recognize that the price is a little higher than if you were to handle all of this stuff separately on your own.</p>
<p>The core service rings in at $14.98 a month, which includes one free domain. If we assume that the annual price for a domain is about $10 and basic monthly web hosting can be had for $5 to $10, you&#8217;re paying about five bucks extra each month. </p>
<p>To some people, the premium cost is worth it. Your WordPress installation is automatic and it is maintained on your behalf. The process is certainly easier than managing these aspects on your own.</p>
<p><strong>A Typical Page.ly Customer</strong></p>
<p>Aside from the footer attribution, you can&#8217;t really tell a Page.ly WordPress blog apart from a standard WordPress blog. It&#8217;s still the same (free) content management system being used in the backend.</p>
<p><img style=' display: block; margin-right: auto; margin-left: auto;'  src="http://www.bloggingtips.com/wp-content/uploads/2010/04/pagely3.jpg" alt="" title="Automate Your WordPress Site with Page.ly" width="600" height="354" class="aligncenter size-full wp-image-13321" /></p>
<p>For instance, take a look at the site of <a href="http://grtaylor2.com/">Gregory Taylor</a>. He&#8217;s a professional photographer from Arizona and he uses Page.ly to power his blog. The chosen theme is clean and effective, including social media integration and tabbed navigation. </p>
<p><strong>The Verdict on Page.ly</strong></p>
<p>Intermediate and power users will likely prefer the manual control (and FTP access) that a traditional WordPress installation can afford, but the simplified process offered by Page.ly will certainly be appealing to novices and people who simply do not have the time to keep up with updates and upgrades.</p>
<p>By automating the process, Page.ly makes having a WordPress website of your own a heck of a lot simpler and easier. </p>
<p>Take a look at the <a href="http://www.bloggingtips.com/pagely">Page.ly</a> web site and WordPress options. </p>
<hr>Copyright &copy; 2012 <strong><a href="http://www.bloggingtips.com">Blogging Tips</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please <a href=http://www.bloggingtips.com/contact/>contact us</a> so we can take legal action immediately.<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingtips.com/2010/04/05/automated-wordpress-sites-with-page-ly/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>How to stop the blank page after leaving a comment in WordPress?</title>
		<link>http://www.bloggingtips.com/2010/01/05/how-to-stop-the-blank-page-after-leaving-a-comment-in-wordpress/</link>
		<comments>http://www.bloggingtips.com/2010/01/05/how-to-stop-the-blank-page-after-leaving-a-comment-in-wordpress/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 04:39:27 +0000</pubDate>
		<dc:creator>Kevin Muldoon</dc:creator>
				<category><![CDATA[WordPress Coding & Design]]></category>

		<guid isPermaLink="false">http://www.bloggingtips.com/?p=12179</guid>
		<description><![CDATA[After resolving the scheduling bug in WordPress 2.9, I noticed that I was getting sent to a blank page after leaving a comment here. The comment would post but you had to hit the back button and then reload to find this out. I tried a few things the other day but put it to the back of my head until Rob Starr reminded me about the problem tonight. Here&#8217;s the problem. After leaving a comment you are sent to http://www.bloggingtips.com/wp-comments-post.php, which is a blank page. If you go back a page and reload then you should see your comment but that page should be redirecting you back to the blog post with your comment on it. I&#8217;ve only had this problem after updating to WordPress 2.9. However, it&#8217;s clear from reading the WordPress support forums that this is a problem that many people have had for a year or ...<p></p>
]]></description>
			<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-11253" title="WordPress" src="http://www.bloggingtips.com/wp-content/uploads/2009/12/wordpress.jpg" alt="WordPress" width="115" height="116" />After <a href="http://www.bloggingtips.com/2010/01/01/how-to-fix-the-missed-schedule-bug-in-wordpress-2-9/">resolving the scheduling bug in WordPress 2.9</a>, I noticed that I was getting sent to a blank page after leaving a comment here. The comment would post but you had to hit the back button and then reload to find this out. I tried a few things the other day but put it to the back of my head until <a href="http://www.robstarr.org/">Rob Starr</a> reminded me about the problem tonight.</p>
<p>Here&#8217;s the problem. After leaving a comment you are sent to http://www.bloggingtips.com/wp-comments-post.php, which is a blank page. If you go back a page and reload then you should see your comment but that page should be redirecting you back to the blog post with your comment on it. </p>
<p>I&#8217;ve only had this problem after updating to WordPress 2.9. However, it&#8217;s clear from reading the WordPress support forums that this is a problem that many people have had for a year or so. My hope was for this article to be an explanation of how you can resolve this problem. Unfortunately, I&#8217;ve not been able to fix it as yet. </p>
<p>If you have had this problem and fixed please share the process you went through to resolve it. I&#8217;m sure many readers, and myself, would be very grateful.</p>
<p>Here are a few steps I have taken to try and resolve this problem. Many people have reported them working for them but none have resolved the issue for me.</p>
<ul>
<li><a href="http://www.crazybulb.com/troubleshoot/wordpress-blank-page-after-posting-a-comment-wp-comment-post-php/">Repaired the comments table via PHPMyAdmin</a></li>
<li><a href="http://www.techpavan.com/2008/12/17/blank-page-comment-submit-wordpress/">Made sure my comments.php template was up to date</a> and removed whitespace from the wp-comments-post.php template</li>
<li>Disabled the Akismet Plugin (Not sure if this is necessary but a few people said it was causing the blank page for them)</li>
<li>Used theme test drive to try out another theme to see if the problem was related to the comments.php code</li>
</ul>
<p>Unfortunately, most of the threads over at WordPress are incomplete with the blogger either not getting his problem resolved, or resolving it and not coming back to explain how he fixed it. </p>
<p>The last thing I can think is causing this is a probllem with database memory. Though if that was the case my other blogs would probably be having this problem too and they&#8217;re not. Plus, it&#8217;s always best to exhaust all other options before going to your host for help as they can&#8217;t be expected to resolve script issues like this.</p>
<p>I do apologise for any inconvenience caused by commentating at the moment. You can leave a comment but you will probably just get sent to that white page so please make sure you hit your back button after submitting your comment.</p>
<p>Again, any feedback on fixing this error would be greatly appreciated. </p>
<p>Thanks,<br />
Kevin</p>
<hr>Copyright &copy; 2012 <strong><a href="http://www.bloggingtips.com">Blogging Tips</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please <a href=http://www.bloggingtips.com/contact/>contact us</a> so we can take legal action immediately.<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingtips.com/2010/01/05/how-to-stop-the-blank-page-after-leaving-a-comment-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>WordPress 2.8 Features</title>
		<link>http://www.bloggingtips.com/2009/06/18/wordpress-2-8-features/</link>
		<comments>http://www.bloggingtips.com/2009/06/18/wordpress-2-8-features/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 19:00:01 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[WordPress Coding & Design]]></category>

		<guid isPermaLink="false">http://www.bloggingtips.com/?p=7802</guid>
		<description><![CDATA[WordPress 2.8 has now been released and as always, it&#8217;s a great improvement on the previous version. I&#8217;ve been using it on a couple of sites and so far the biggest improvement has been the theme editor with its colour coding and line numbering. There are a few other good looking features, the widget interface has improved greatly and you can now arrange your dashboard into four columns. Under your General settings you can change your timezone to a city in your country and then update for daylight savings which is a major update for those of us who forget! Finally you can now control how many items are displayed per page in your admin, great for those who want 50 posts on the edit posts page rather than the default 15. To change this you need to go into the page eg. Edit Posts, the click on the Screen ...<p></p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.wordpress.org/download/">WordPress 2.8</a> has now been released and as always, it&#8217;s a great improvement on the previous version. I&#8217;ve been using it on a couple of sites and so far the biggest improvement has been the theme editor with its colour coding and line numbering.</p>
<p>There are a few other good looking features, the widget interface has improved greatly and you can now arrange your dashboard into four columns. Under your General settings you can change your timezone to a city in your country and then update for daylight savings which is a major update for those of us who forget!</p>
<p>Finally you can now control how many items are displayed per page in your admin, great for those who want 50 posts on the edit posts page rather than the default 15. To change this you need to go into the page eg. Edit Posts, the click on the Screen Options tab at the top and there you can change it to how ever many you want (it says 20 but there are only 15 there by default, honest!).</p>
<h3>Template Tags</h3>
<p>So how about the new template tags available? There are a few which are listed below. This won&#8217;t seem as major as the 2.7 upgrade where we had <a href="http://www.bloggingtips.com/2008/11/30/wordpress-27-theme-enhancements-ii/">new code for the comment listing</a>, however, the tags below may be of use to some and should help tidy up your code even further in areas.</p>
<dl>
<dt><a href="http://codex.wordpress.org/Template_Tags/the_modified_author">the_modified_author()</a></dt>
<dd>This new tag allows us to display the author who last <em>modified</em> the post. We already have <a href="http://codex.wordpress.org/Template_Tags/the_modified_date">the_modified_date()</a> which displays the date the post was last modified. This is handy if you wanted to display the post date and author as well as the modified date and author, of course more useful for multi author sites.</dd>
<dt><a href="http://codex.wordpress.org/Template_Tags/tag_description">tag_description($tagID);</a></dt>
<dd>This will return the description for the given tag ID, useful if you wanted to output it at the top of your tag theme file.</dd>
<dt><a href="http://codex.wordpress.org/Function_Reference/term_description">term_description($termID, $taxonomy)</a></dt>
<dd>This returns the description of the give term ID for the specified taxonomy. The latter parameter can be &#8216;category&#8217;, &#8216;post_tag&#8217; or &#8216;link_category&#8217;.</dd>
<dt><a href="http://codex.wordpress.org/Function_Reference/wp_lostpassword_url">wp_lostpassword_url($redirect)</a></dt>
<dd>This allows you to insert the Lost Password URL within your page. If you supply a redirect URL then once the lost password is requested the user will be redirected back to the page specified for example, to return the user to the page they were on use the get_permalink() tag eg. <strong>wp_lost_password_url(get_permalink())</strong>.</dd>
<dt><a href="http://codex.wordpress.org/Template_Tags/the_author_meta">the_author_meta($field, $ID)</a></dt>
<dd>This will display an Author&#8217;s meta data stored under the wp_usermeta table. If used with the loop then the $ID can be omitted (if you want that author&#8217;s details). A number of fields to specify are available, the more useful ones in a template being:</p>
<ul>
<li>user_nicename</li>
<li>user_email</li>
<li>user_url</li>
<li>user_registered</li>
<li>display_name</li>
<li>nickname</li>
<li>first_name</li>
<li>last_name</li>
<li>description</li>
<li>jabber</li>
<li>aim</li>
<li>yim</li>
</ul>
<p>If you want to return the data then use <a href="http://codex.wordpress.org/Function_Reference/get_the_author_meta">get_the_author_meta($field, $ID)</a> instead. (Note: this will eventually replace many of the the template tags starting (get_)the_author_. Check the <a href="http://core.trac.wordpress.org/browser/trunk/wp-includes/deprecated.php">deprecated tags list</a> for more info). This tag seems to be similar to <a href="http://codex.wordpress.org/Function_Reference/get_usermeta">get_usermeta()</a>, it just doesn&#8217;t require a user ID specifying.</dd>
</dl>
<hr>Copyright &copy; 2012 <strong><a href="http://www.bloggingtips.com">Blogging Tips</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please <a href=http://www.bloggingtips.com/contact/>contact us</a> so we can take legal action immediately.<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingtips.com/2009/06/18/wordpress-2-8-features/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Create Your Own WordPress Widget</title>
		<link>http://www.bloggingtips.com/2009/06/04/create-your-own-wordpress-widget/</link>
		<comments>http://www.bloggingtips.com/2009/06/04/create-your-own-wordpress-widget/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 19:00:45 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[WordPress Coding & Design]]></category>

		<guid isPermaLink="false">http://www.bloggingtips.com/?p=7562</guid>
		<description><![CDATA[Widgets make your life easier with sorting out your sidebar in WordPress, however sometimes there&#8217;s information or perhaps an external source/item that you want to turn into a widget but just don&#8217;t know how. To create a very basic widget it&#8217;s quite simple. We just need to add a function into our functions.php theme file which outputs the content, and then register it as a sidebar widget. Sounds easy? It is So, let&#8217;s use our WordPress login form as an example. I&#8217;ve covered how to add a login box before, so we&#8217;ll take this code as our user code. All we need to do with it is wrap this in a function i.e. [php htmlscript="true"]&#60;?php function lbox_widget() { if (!is_user_logged_in()) : ?&#62; &#60;form id=&#8221;loginform&#8221; action=&#8221;&#60;?php echo get_option(&#8216;home&#8217;); ?&#62;/wp-login.php&#8221; method=&#8221;post&#8221;&#62; &#60;fieldset&#62;&#60;legend&#62;Login&#60;/legend&#62; &#60;div&#62; &#60;label for=&#8221;log&#8221;&#62;Username &#60;input type=&#8221;text&#8221; name=&#8221;log&#8221; id=&#8221;log&#8221; size=&#8221;20&#8243; /&#62;&#60;/label&#62; &#60;/div&#62; &#60;div&#62; &#60;label for=&#8221;pwd&#8221;&#62;Password &#60;input type=&#8221;password&#8221; name=&#8221;pwd&#8221; id=&#8221;pwd&#8221; size=&#8221;20&#8243; /&#62;&#60;/label&#62; &#60;/div&#62; ...<p></p>
]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-17588" style="margin: 4px;;  float: right; padding: 4px; margin: 0 0 2px 7px;" title="Wordpress" src="http://www.bloggingtips.com/wp-content/uploads/2009/06/wordpress-blue.jpg" alt="" width="266" height="190" />Widgets make your life easier with sorting out your sidebar in WordPress, however sometimes there&#8217;s information or perhaps an external source/item that you want to turn into a widget but just don&#8217;t know how.</p>
<p>To create a very basic widget it&#8217;s quite simple. We just need to add a function into our functions.php theme file which outputs the content, and then register it as a sidebar widget. Sounds easy? It is <img src='http://www.bloggingtips.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So, let&#8217;s use our WordPress login form as an example. I&#8217;ve covered how to <a href="http://www.bloggingtips.com/2009/02/15/adding-a-login-box-to-your-site/">add a login box</a> before, so we&#8217;ll take this code as our user code. All we need to do with it is wrap this in a function i.e.</p>
<p>[php htmlscript="true"]&lt;?php<br />
function lbox_widget() {<br />
if (!is_user_logged_in()) : ?&gt;</p>
<p>&lt;form id=&#8221;loginform&#8221; action=&#8221;&lt;?php echo get_option(&#8216;home&#8217;); ?&gt;/wp-login.php&#8221; method=&#8221;post&#8221;&gt;<br />
&lt;fieldset&gt;&lt;legend&gt;Login&lt;/legend&gt;<br />
&lt;div&gt;<br />
&lt;label for=&#8221;log&#8221;&gt;Username<br />
&lt;input type=&#8221;text&#8221; name=&#8221;log&#8221; id=&#8221;log&#8221; size=&#8221;20&#8243; /&gt;&lt;/label&gt;<br />
&lt;/div&gt;<br />
&lt;div&gt;<br />
&lt;label for=&#8221;pwd&#8221;&gt;Password<br />
&lt;input type=&#8221;password&#8221; name=&#8221;pwd&#8221; id=&#8221;pwd&#8221; size=&#8221;20&#8243; /&gt;&lt;/label&gt;<br />
&lt;/div&gt;<br />
&lt;div&gt;<br />
&lt;label&gt;&lt;input name=&#8221;rememberme&#8221; type=&#8221;checkbox&#8221; id=&#8221;rememberme&#8221; value=&#8221;forever&#8221; /&gt; Remember Me&lt;/label&gt;<br />
&lt;/div&gt;<br />
&lt;div&gt;<br />
&lt;input type=&#8221;submit&#8221; name=&#8221;wp-submit&#8221; id=&#8221;wp-submit&#8221; value=&#8221;Log In&#8221; /&gt;<br />
&lt;input type=&#8221;hidden&#8221; name=&#8221;redirect_to&#8221; value=&#8221;&lt;?php echo urlencode(get_permalink()); ?&gt;&#8221; /&gt;<br />
&lt;/div&gt;<br />
&lt;/fieldset&gt;<br />
&lt;/form&gt;</p>
<p>&lt;?php else : ?&gt;</p>
<p>&lt;ul&gt;<br />
&lt;li&gt;&lt;a href=&#8221;&lt;?php echo get_option(&#8216;home&#8217;); ?&gt;/wp-admin/&#8221;&gt;WP Admin&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;&lt;?php echo wp_logout_url(get_permalink()); ?&gt;&#8221;&gt;Logout&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;</p>
<p>&lt;?php endif;<br />
} ?&gt;[/php]</p>
<p>Of course at this point you could just use the function call and place that in your sidebar or whereever you wanted it. However, for ease of use, especially if the site isn&#8217;t actually for you but someone who is less clued up on code, we can register it as a widget and then it can just be added to our <a href="http://www.bloggingtips.com/2009/05/07/widgetise-your-theme/">dynamic sidebar</a> in which ever location you want. So to register our function as a widget we use the register_sidebar_widget() function eg.</p>
<p>[php htmlscript="true"]&lt;?php register_sidebar_widget(__(&#8216;Login Box&#8217;), &#8216;lbox_widget&#8217;); ?&gt;[/php]</p>
<p>We can place this before or after the function. The first parameter is the name of the widget, which is only seen in the Widgets admin page. The second parameter is the function name for our widget.</p>
<p>If you add all of this code into your functions file then go to your Widgets admin page under Appearance, you should now see a new widget called &#8216;Login Box&#8217;.</p>
<p>That is the basic method, however in our <a href="http://www.bloggingtips.com/2009/05/07/widgetise-your-theme/">widgetise your theme</a> post I also covered about setting the code to go before and after the widget and before and after your heading. We can then pull this into our login box function, so that we set the before and after widget code in the function. To do this we pass the variable <strong>$args</strong> to our login box function. We then extract this and then we have the array keys set which if you remember were</p>
<p>[php]array(<br />
&#8216;before_widget&#8217; =&gt; &#8216;&lt;li&gt;&#8217;,<br />
&#8216;after_widget&#8217; =&gt; &#8216;&lt;/li&gt;&#8217;,<br />
&#8216;before_title&#8217; =&gt; &#8216;&lt;h3&gt;&#8217;,<br />
&#8216;after_title&#8217; =&gt; &#8216;&lt;/h3&gt;&#8217;,<br />
);[/php]</p>
<p>So we can then use $before_widget, $after_widget, $before_title and $after_title in our function output if we want. For this function there isn&#8217;t really a title, however we could insert one for logged in users such as &#8216;Welcome Back&#8217;. So to put these changes into practice we now use:</p>
<p>[php htmlscript="true"]&lt;?php<br />
function lbox_widget($args) {<br />
extract ($args);</p>
<p>echo $before_widget;<br />
if (!is_user_logged_in()) : ?&gt;</p>
<p>&lt;form id=&#8221;loginform&#8221; action=&#8221;&lt;?php echo get_option(&#8216;home&#8217;); ?&gt;/wp-login.php&#8221; method=&#8221;post&#8221;&gt;<br />
&lt;fieldset&gt;&lt;legend&gt;Login&lt;/legend&gt;<br />
&lt;div&gt;<br />
&lt;label for=&#8221;log&#8221;&gt;Username<br />
&lt;input type=&#8221;text&#8221; name=&#8221;log&#8221; id=&#8221;log&#8221; size=&#8221;20&#8243; /&gt;&lt;/label&gt;<br />
&lt;/div&gt;<br />
&lt;div&gt;<br />
&lt;label for=&#8221;pwd&#8221;&gt;Password<br />
&lt;input type=&#8221;password&#8221; name=&#8221;pwd&#8221; id=&#8221;pwd&#8221; size=&#8221;20&#8243; /&gt;&lt;/label&gt;<br />
&lt;/div&gt;<br />
&lt;div&gt;<br />
&lt;label&gt;&lt;input name=&#8221;rememberme&#8221; type=&#8221;checkbox&#8221; id=&#8221;rememberme&#8221; value=&#8221;forever&#8221; /&gt; Remember Me&lt;/label&gt;<br />
&lt;/div&gt;<br />
&lt;div&gt;<br />
&lt;input type=&#8221;submit&#8221; name=&#8221;wp-submit&#8221; id=&#8221;wp-submit&#8221; value=&#8221;Log In&#8221; /&gt;<br />
&lt;input type=&#8221;hidden&#8221; name=&#8221;redirect_to&#8221; value=&#8221;&lt;?php echo urlencode(get_permalink()); ?&gt;&#8221; /&gt;<br />
&lt;/div&gt;<br />
&lt;/fieldset&gt;<br />
&lt;/form&gt;</p>
<p>&lt;?php<br />
else :<br />
echo $before_title.&#8221;Welcome Back&#8221;.$after_title;<br />
?&gt;</p>
<p>&lt;ul&gt;<br />
&lt;li&gt;&lt;a href=&#8221;&lt;?php echo get_option(&#8216;home&#8217;); ?&gt;/wp-admin/&#8221;&gt;WP Admin&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a href=&#8221;&lt;?php echo wp_logout_url(get_permalink()); ?&gt;&#8221;&gt;Logout&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;</p>
<p>&lt;?php endif;<br />
echo $after_widget;<br />
}</p>
<p>register_sidebar_widget(__(&#8216;Login Box&#8217;), &#8216;lbox_widget&#8217;);<br />
?&gt;[/php]</p>
<p>As you can see here, I&#8217;ve passed the variable $args to the function. Then on line 3 I extract these which then allows me to echo them out like standard variables. I&#8217;ve then added the $before_widget variable on line 5 and the $after_widget on line 39. Finally I&#8217;ve inserted our new title in at line 30.</p>
<p>If you update your functions file with that code and then refresh your site (assuming you&#8217;ve added the new widget in already) then you should see the changes. Don&#8217;t forget, you&#8217;ll only see the login box if you&#8217;re not logged in. I recommend using two browsers to see the two different versions (or logging out then back in!).</p>
<p>This is just a simple method for adding your own widgets. You can use this to add any code/script or standard markup of your own.</p>
<p>Next week I&#8217;ll explain how we can change your standard plugin to offer a widget as well, and also how to add options into the widget admin page.</p>
<hr>Copyright &copy; 2012 <strong><a href="http://www.bloggingtips.com">Blogging Tips</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please <a href=http://www.bloggingtips.com/contact/>contact us</a> so we can take legal action immediately.<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingtips.com/2009/06/04/create-your-own-wordpress-widget/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Revisiting WordPress Custom Fields</title>
		<link>http://www.bloggingtips.com/2009/05/28/revisiting-wordpress-custom-fields/</link>
		<comments>http://www.bloggingtips.com/2009/05/28/revisiting-wordpress-custom-fields/#comments</comments>
		<pubDate>Thu, 28 May 2009 19:00:38 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[WordPress Coding & Design]]></category>

		<guid isPermaLink="false">http://www.bloggingtips.com/?p=7461</guid>
		<description><![CDATA[A few months ago I wrote about Custom Fields in WordPress. At the time I just gave a small example of how these could be used, and a couple of people still didn&#8217;t grasp the point of them so I&#8217;m going to give a few more examples of using them which will hopefully shed some light on how useful they actually are! For the basics of using the custom fields in the admin then please read the custom fields post first. Below are just working examples. Meta Description Before you mention (or think it), yes there&#8217;s the fantastic All in One SEO pack, but I don&#8217;t use this for my blog as I don&#8217;t need that much extra code running. I don&#8217;t think that this plugin is needed for blog posts however, sometimes a meta description is. So instead of adding a full blown plugin for the benefit of a ...<p></p>
]]></description>
			<content:encoded><![CDATA[<p>A few months ago I wrote about <a href="http://www.bloggingtips.com/2008/11/02/wordpress-custom-fields/">Custom Fields</a> in WordPress. At the time I just gave a small example of how these could be used, and a couple of people still didn&#8217;t grasp the point of them so I&#8217;m going to give a few more examples of using them which will hopefully shed some light on how useful they actually are!</p>
<p>For the basics of using the custom fields in the admin then please read the <a href="http://www.bloggingtips.com/2008/11/02/wordpress-custom-fields/">custom fields post</a> first. Below are just working examples.</p>
<h3>Meta Description</h3>
<p><img class="alignright size-full wp-image-18955" style="margin: 3px;;  float: right; padding: 4px; margin: 0 0 2px 7px;" title="Wordpress Custom Fields" src="http://www.bloggingtips.com/wp-content/uploads/2009/05/wordpress-tools2.jpg" alt="" width="189" height="230" />Before you mention (or think it), yes there&#8217;s the fantastic All in One SEO pack, but I don&#8217;t use this for my blog as I don&#8217;t need that much extra code running. I don&#8217;t think that this plugin is needed for blog posts however, sometimes a meta description is. So instead of adding a full blown plugin for the benefit of a few pages, we can just use a custom field.</p>
<p>So if you set up a custom field for each post that you want to add a meta description for, give the custom field a name of metad and the value should contain the description. Don&#8217;t forget, once you create the custom field the name will be available automatically for all your other posts and pages.</p>
<p>Then in your header.php file you want to add the meta description tag in. You can either just use</p>
<p>[php htmlscript="true"]&lt;meta name=&#8221;description&#8221; value=&#8221;&lt;?php echo get_post_meta($post-&gt;ID, &#8216;metad&#8217;, TRUE); ?&gt;&#8221; /&gt;[/php]</p>
<p>Or, if you don&#8217;t want an empty description tag if there&#8217;s no description then you can use an if statement with it ie.</p>
<p>[php htmlscript="true"]&lt;?php $metad = get_post_meta($post-&gt;ID, &#8216;metad&#8217;, TRUE);<br />
if ($metad) : ?&gt;<br />
&lt;meta name=&#8221;description&#8221; value=&#8221;&lt;?php echo $metad ?&gt;&#8221; /&gt;<br />
&lt;?php endif; ?&gt;[/php]</p>
<p>This will only put a description then if one exists for the post or page currently being viewed.</p>
<h3>Post Image</h3>
<p>A lot of bloggers like to add an image to their posts, and whilst this is easily done in the post content area, you could reduce your work by using a custom field. If you create a custom field for a post with a name of postimage and then the value is the URL of the image (you can still upload the image via the image uploader, but instead of inserting it into the post, just copy the URL). We also need some alternative text so create a second field called postimgalt and enter the text for the alt attribute in the value field.</p>
<p>Then in your single.php page (and index.php, archive.php and category.php pages if each exists and you&#8217;re showing full content posts in there) add the image code where you want the image to be placed. For example if you wanted the image to be at the top right of your post then you could use the following just before the template tag the_content();</p>
<p>[php htmlscript="true"]&lt;?php $postimage = get_post_meta($post-&gt;ID, &#8216;postimage&#8217;, TRUE);<br />
if ($postimage) : ?&gt;<br />
&lt;img src=&#8221;&lt;?php echo $metad ?&gt;&#8221; alt=&#8221;&lt;?php echo get_post_meta($post-&gt;ID, &#8216;postimgalt&#8217;, TRUE); ?&gt;&#8221; class=&#8221;imgright&#8221; /&gt;<br />
&lt;?php endif; ?&gt;[/php]</p>
<p>Note the class imgright would then have the styles:</p>
<p>[css].imgright {<br />
float: right;<br />
margin: 0 0 10px 10px;<br />
}[/css]</p>
<p>This way you would then just have content in your post and your post image would go into the custom fields.</p>
<h3>Specify the Language</h3>
<p>Last year we created a multilingual site in WordPress for a client, yet still wanted to be able to add the lang and xml:lang attributes to the HTML tag, so we created a custom field called langtype and then used this to insert the correct type ie.</p>
<p>[php htmlscript="true"]&lt;?php<br />
$langtype = get_post_meta($post-&gt;ID, &#8216;langtype&#8217;, TRUE);<br />
if (empty($langtype)) $langtype = &#8216;en&#8217;;<br />
?&gt;<br />
&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Strict//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&#8221;&gt;<br />
&lt;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221; xml:lang=&#8221;&lt;?php echo $langtype ?&gt;&#8221; lang=&#8221;&lt;?php echo $langtype ?&gt;&#8221;&gt;<br />
[/php]</p>
<p>This is useful for sites running two or more languages.</p>
<h3>Credit Author</h3>
<p>Sometimes you may have a guest author write for your site. Yes, you can create them an account for this but then that means you need to leave the account there for the lifetime of the blog (on account deletion, the author&#8217;s post will be recredited to the site admin or whoever you select during account deletion). Instead of creating an account for each guest author you have, especially if it&#8217;s only a one off, you can create a custom field to credit the author. So for a guest post, create a field called pauthor, and enter the Author&#8217;s name. If you want to link their name then you can also create a second field called pauthurl and enter the author&#8217;s website (note I&#8217;m just making up fieldnames here. Just make sure they&#8217;re unique and unlikely to clash with anything else already in the database table).</p>
<p>Then in your template files, where it usually says the author&#8217;s name, we can replace this with displaying the guest author, if one exists, else display the post author eg.</p>
<p>[php htmlscript="true"]Post written by:<br />
&lt;?php<br />
$pauthor = get_post_meta ($post-&gt;ID, &#8216;pauthor&#8217;, TRUE);<br />
if ($pauthor) :<br />
echo &#8220;&lt;a href=&#8217;&#8221;.get_post_meta ($post-&gt;ID, &#8216;pauthurl&#8217;, TRUE).&#8217;&#8221;&gt;&#8221;.$pauthor.&#8221;&lt;/a&gt;&#8221;;<br />
else :<br />
the_author();<br />
endif;<br />
?&gt;[/php]</p>
<p>This would replace your usual &#8220;Post written by: Sarah&#8221; code. Of course each theme is different so you will have to determine what to replace where.</p>
<p>Alternatively you could just add a line at the top of the post if there is a guest author set eg.</p>
<p>[php htmlscript="true"]&lt;?php<br />
$pauthor = get_post_meta ($post-&gt;ID, &#8216;pauthor&#8217;, TRUE);<br />
if ($pauthor) :<br />
echo &#8220;&lt;p&gt;The following post is a guest post by &lt;a href=&#8217;&#8221;.get_post_meta ($post-&gt;ID, &#8216;pauthurl&#8217;, TRUE).&#8217;&#8221;&gt;&#8221;.$pauthor.&#8221;&lt;/a&gt;.&lt;/p&gt;&#8221;;<br />
endif;[/php]</p>
<h3>Conclusion</h3>
<p>Hopefully this has given a few more examples of custom field usage to help you understand how you can use them, or for those who haven&#8217;t seen them before, given you some new ideas on how you can add unique content to your posts and pages without too much effort.</p>
<hr>Copyright &copy; 2012 <strong><a href="http://www.bloggingtips.com">Blogging Tips</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please <a href=http://www.bloggingtips.com/contact/>contact us</a> so we can take legal action immediately.<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingtips.com/2009/05/28/revisiting-wordpress-custom-fields/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Get your latest tweets on your blog &#8211; Plugin free</title>
		<link>http://www.bloggingtips.com/2009/05/22/get-your-latest-tweets-on-your-blog-plugin-free/</link>
		<comments>http://www.bloggingtips.com/2009/05/22/get-your-latest-tweets-on-your-blog-plugin-free/#comments</comments>
		<pubDate>Fri, 22 May 2009 19:00:28 +0000</pubDate>
		<dc:creator>Ryan Edmunds</dc:creator>
				<category><![CDATA[WordPress Coding & Design]]></category>
		<category><![CDATA[latest tweets]]></category>
		<category><![CDATA[twitter updates]]></category>
		<category><![CDATA[wp code]]></category>

		<guid isPermaLink="false">http://www.bloggingtips.com/?p=7365</guid>
		<description><![CDATA[There are a lot of plugins for WordPress that deal with Twitter. It can be hard to find the right one when you have a specific feature in mind. Although there are some really useful ones, sometimes a plugin is not always the answer. If you want to add your latest tweets to your blog but you don&#8217;t have the resources for another plugin, or you just like doing things by hand, here is some code you can use to add your latest tweets from Twitter to your blog without a plugin. Everything we need can actually be accomplished in three lines of code. The first bit of javascript we need to accomplish this is supplied to us by Twitter. &#60;script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"&#62;&#60;/script&#62; &#60;script type="text/javascript" src="http://twitter.com/statuses/user_timeline/USERNAME.json?callback=twitterCallback2&#38;count=1"&#62;&#60;/script&#62; You&#8217;ll want to change USERNAME to your Twitter username. You can also change count=1 to whatever number of Tweets you want to show up. ...<p></p>
]]></description>
			<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright" src="http://blog-media.chromaticsites.com/images/post-images/wordpress-plugin-twitter-retweet.jpg" alt="" width="150" height="134" />There are a lot of plugins for WordPress that deal with Twitter. It can be hard to find the right one when you have a specific feature in mind. Although there are some really useful ones, sometimes a plugin is not always the answer. If you want to add your latest tweets to your blog but you don&#8217;t have the resources for another plugin, or you just like doing things by hand, here is some code you can use to add your latest tweets from Twitter to your blog without a plugin.</p>
<p>Everything we need can actually be accomplished in three lines of code.</p>
<p>The first bit of javascript we need to accomplish this is supplied to us by Twitter.</p>
<pre>&lt;script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="http://twitter.com/statuses/user_timeline/USERNAME.json?callback=twitterCallback2&amp;count=1"&gt;&lt;/script&gt;</pre>
<p>You&#8217;ll want to change USERNAME to your Twitter username. You can also change count=1 to whatever number of Tweets you want to show up. You are best to put this script somwhere at the bottom of your template. That way if there is any load issues at Twitter your blog page will still load first.</p>
<p>Now all you need is a line of HTML code to display the Tweets.</p>
<pre>&lt;div id="twitter_div"&gt;&lt;ul id="twitter_update_list"&gt;&lt;li&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</pre>
<p>It is up to you where you want your Tweets to appear. If your blog is widget-ready you can simply paste this HTML code into a text widget and drag it to the desired location. You can also manually edit sidebar.php or even put it in the header or footer of your blog.</p>
<p>From here you are free to add a new selector to your stylesheet to style the updates. Make a CSS selector with the ID &#8216;twitter_div&#8217; and style it as you see fit.</p>
<hr>Copyright &copy; 2012 <strong><a href="http://www.bloggingtips.com">Blogging Tips</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please <a href=http://www.bloggingtips.com/contact/>contact us</a> so we can take legal action immediately.<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingtips.com/2009/05/22/get-your-latest-tweets-on-your-blog-plugin-free/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress Theme Inheritance</title>
		<link>http://www.bloggingtips.com/2009/05/21/wordpress-theme-inheritance/</link>
		<comments>http://www.bloggingtips.com/2009/05/21/wordpress-theme-inheritance/#comments</comments>
		<pubDate>Thu, 21 May 2009 19:00:02 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[WordPress Coding & Design]]></category>

		<guid isPermaLink="false">http://www.bloggingtips.com/?p=7348</guid>
		<description><![CDATA[The WordPress template system has a relatively unused gem in the template system, Theme Inheritance. Theme Inheritance allows you to set your theme to inherit files from a parent theme, meaning you could create your theme in the colours you choose, but then you can create a number of new themes with just a stylesheet in them, and set each stylesheet to inherit from the main theme, and then just override the styles set. So, if we use the example of having perhaps 6 different theme styles on one site, and offering user&#8217;s a style switcher to select which one they preferred to see. Often people may just have the 6 themes online, each directory having the index.php theme file, the functions, page, archive, category, single and comments template files. That&#8217;s fine until a new version comes out of WordPress, there are maybe a few new tags you can use, ...<p></p>
]]></description>
			<content:encoded><![CDATA[<p>The WordPress template system has a relatively unused gem in the template system, Theme Inheritance. Theme Inheritance allows you to set your theme to inherit files from a parent theme, meaning you could create your theme in the colours you choose, but then you can create a number of new themes with just a stylesheet in them, and set each stylesheet to inherit from the main theme, and then just override the styles set.</p>
<p>So, if we use the example of having perhaps 6 different theme styles on one site, and offering user&#8217;s a style switcher to select which one they preferred to see. Often people may just have the 6 themes online, each directory having the index.php theme file, the functions, page, archive, category, single and comments template files. That&#8217;s fine until a new version comes out of WordPress, there are maybe a few new tags you can use, or you decide you want to add a bit of code to say the footer of your site. 6 themes may not be so bad, but if you run a multi author blog, perhaps on WordPress MU, then try changing 6 to 60. Suddenly it&#8217;s not so good!</p>
<p>Our main theme (we&#8217;ll call it &#8216;Parent&#8217;), would consist of all the theme files we need. The typical files being:</p>
<ul>
<li>style.css</li>
<li>index.php</li>
<li>archive.php</li>
<li>single.php</li>
<li>page.php</li>
<li>comments.php</li>
<li>sidebar.php</li>
<li>header.php</li>
<li>footer.php</li>
<li>functions.php</li>
</ul>
<p>Of course you may have additional files as well, but those are a selection of the most common theme files. To define the theme, the style.css file will have the following at the top of it:</p>
<p>[sourcecode language="css"]/*<br />
Theme Name: Parent<br />
Theme URI: http://www.mysite.com/<br />
Description: The default Parent theme from mysite<br />
Version: 1.0<br />
Author: Me<br />
Author URI: http://www.mysite.com/<br />
*/[/sourcecode]</p>
<p>We would then put this theme directory in the usual place under /wp-content/themes/.</p>
<p>Now we can move on to creating a child theme. So for example, our parent theme is quite plain, standard letter sizes and black and white. We can then create one child theme that uses a variety of colours, and a second theme that increases the size of the font and allows the site design/layout to work with the increased font size. So for the first child theme we could call this one Rainbow, and tell it to inherit from the parent theme. We would create a new stylesheet for the Rainbow theme, and at the top of style.css we would place</p>
<p>[sourcecode language="css"]/*<br />
Theme Name: Rainbow<br />
Theme URI: http://www.mysite.com/<br />
Description: The Rainbow child theme from mysite<br />
Version: 1.0<br />
Author: Me<br />
Author URI: http://www.mysite.com/<br />
Template: parent<br />
*/[/sourcecode]</p>
<p>The additional line in this to tell the theme where to inherit from is the last line &#8216;Template: parent&#8217;. The template name should refer to the directory that the theme is stored in, and it&#8217;s case sensitive.</p>
<p>You can then set all of your styling in this style.css file for the site and upload it to a new theme directory called &#8216;rainbow&#8217;. If you wanted to inherit the styles from the parent theme then you would need to import the parent stylesheet in, then add your own CSS below to override any styles necessary. So you can add:</p>
<p><code>@import url("../parent/style.css");</code></p>
<p>below the top comment in the file.</p>
<p>Then we&#8217;ll create our second stylesheet, for increasing the overall size of the site (yes a well coded site shouldn&#8217;t require a second stylesheet to increase the text size and size of the site, but this is only an example!). This one we&#8217;ll call Large B&#038;W. So again we do the same as above in our new style.css file</p>
<p>[sourcecode language="css"]/*<br />
Theme Name: Large B&#038;W<br />
Theme URI: http://www.mysite.com/<br />
Description: The Large Black and White child theme from mysite<br />
Version: 1.0<br />
Author: Me<br />
Author URI: http://www.mysite.com/<br />
Template: parent<br />
*/<br />
@import url(&#8220;../parent/style.css&#8221;);[/sourcecode]</p>
<p>We then put this into a directory called largebw.</p>
<p>Our themes directory would now look like</p>
<ol>
<li>parent
<ul>
<li>style.css</li>
<li>index.php</li>
<li>archive.php</li>
<li>single.php</li>
<li>page.php</li>
<li>comments.php</li>
<li>sidebar.php</li>
<li>header.php</li>
<li>footer.php</li>
<li>functions.php</li>
</ul>
</li>
<li>rainbow
<ul>
<li>style.css</li>
</ul>
</li>
<li>largebw
<ul>
<li>style.css</li>
</ul>
</li>
</ol>
<p>Up until WordPress 2.7 that was all we could do. It served a purpose, but was obviously limiting in its usefulness for most people. However, since WordPress 2.7, you can now also add PHP theme files in your child directories to override the parent&#8217;s <em>where necessary</em>. So, for example, if you wanted to put an advert in your Large B&#038;W single post theme file for a screen reader, then you would take a copy of the single.php file from the parent theme, add in the additional code for your advert, and then put this into your largebw theme directory. This directory would then have the files style.css and single.php, the other theme files would inherit from the parent directory.</p>
<p>You may still wonder if this is of any use to you. If you decide to purchase a theme (or find one for free at <a href="http://www.wordpress.org/extend/themes/">WordPress</a>) then you would hope that the theme be kept up to date with the newest WordPress additions and functions. Yet, you may want to make some changes to it to suit your own style. Perhaps change the sidebar to use h3 on headings instead of h2, maybe change the header to have a big advert across the top, or maybe add a flickr badge in the footer. However, when the theme is upgraded, you have to do this all again &#8211; which usually means it&#8217;s unlikely you&#8217;ll upgrade your theme! With Theme Inheritance, you can create your child theme to inherit the untouched theme and then you can just copy the files you want to change into it, make your alterations, and leave the rest as normal. Yes you would still have to make a few alterations possibly on upgrading the theme, but it wouldn&#8217;t be as much hassle.</p>
<p>So, hopefully now you can see the potential for using child themes on your site, regardless of whether you have one theme or many, it has a use that is not widely used yet but I&#8217;m sure will be in the future <img src='http://www.bloggingtips.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<hr>Copyright &copy; 2012 <strong><a href="http://www.bloggingtips.com">Blogging Tips</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please <a href=http://www.bloggingtips.com/contact/>contact us</a> so we can take legal action immediately.<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingtips.com/2009/05/21/wordpress-theme-inheritance/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Adding custom icons to your WordPress theme</title>
		<link>http://www.bloggingtips.com/2009/05/20/adding-custom-icons-to-your-wordpress-theme/</link>
		<comments>http://www.bloggingtips.com/2009/05/20/adding-custom-icons-to-your-wordpress-theme/#comments</comments>
		<pubDate>Wed, 20 May 2009 14:00:24 +0000</pubDate>
		<dc:creator>Ryan Edmunds</dc:creator>
				<category><![CDATA[WordPress Coding & Design]]></category>

		<guid isPermaLink="false">http://www.bloggingtips.com/?p=7303</guid>
		<description><![CDATA[If you are using a WP framework it is quite simple to modify the background images and icons set up with the theme. Some of the more powerful themes even allow you to upload new images from right inside the admin area.  However, if you&#8217;re using something a little simpler, most of the time you have to go in and manually add images to your theme the old fashioned way. If your theme falls under the latter, we&#8217;ve got the quick and dirty guide you need to add custom icons or images to your WordPress theme. You Will Need: Basic HTML Knowledge An FTP Client No Fear of PHP Code In order to add images to your theme you will need to first create a folder within your current wp-themes folder called images. Unless it already has one, in which case it would be found in your wp-folder/WP-Content/WP-Themes/YourTheme/images. Using your ...<p></p>
]]></description>
			<content:encoded><![CDATA[<p>If you are using a <a href="http://www.bloggingtips.com/2009/05/15/wordpress-theme-frameworks/">WP framework</a> it is quite simple to modify the background images and icons set up with the theme. Some of the more powerful themes even allow you to upload new images from right inside the admin area.  However, if you&#8217;re using something a little simpler, most of the time you have to go in and manually add images to your theme the old fashioned way. If your theme falls under the latter, we&#8217;ve got the quick and dirty guide you need to add custom icons or images to your WordPress theme.</p>
<p><img class="alignnone" src="http://wphacks.com/wp-content/uploads/2008/05/web-icons.png" alt="" width="414" height="377" /></p>
<p><strong>You Will Need</strong>:</p>
<ul>
<li>Basic HTML Knowledge</li>
<li>An FTP Client</li>
<li>No Fear of PHP Code</li>
</ul>
<p>In order to add images to your theme you will need to first create a folder within your current wp-themes folder called images. Unless it already has one, in which case it would be found in your wp-folder/WP-Content/WP-Themes/YourTheme/images.</p>
<p>Using your favorite FTP Client ( I like leech FTP ) upload any images that you want to use in your theme. If you just want to replace the images that come stock with your WordPress theme you can probably get away with simply renaming your new images to overwrite the ones in your current theme images folder. If you&#8217;re adding images to place they didn&#8217;t exist before, read on.</p>
<p><strong>Grabbing the directory with WordPress template tags</strong></p>
<p>You can use a WP template tag to refer to the current theme&#8217;s directory without having to type out the entire URL. This is the most compatable way as it uses a dynamic reference to the directory, and will work on any installation.</p>
<pre>&lt;?php bloginfo('template_url');?&gt;</pre>
<p>This will simply get you into the directory of whatever theme is currently active. Now lets look at two ways to implement and image from this folder.</p>
<p>First  we&#8217;ll look at getting a background image from this directory, then a static image that could be served as a logo or an icon elsewhere in the theme.</p>
<p>In your stylesheet:</p>
<pre>body{
background-image: url(&lt;?php bloginfo('template_url');?&gt;/images/my-image.gif);
}</pre>
<p>The code above simply looks for a specific image inside the images folder within your theme. The second code will do the same, but will populate a normal HTML image code.</p>
<pre>&lt;img src="&lt;?php bloginfo('template_url');?&gt;/images/my-image.gif" alt="my icon"/&gt;</pre>
<p>You should know feel relatively safe adding your own images to any WordPress theme.</p>
<hr>Copyright &copy; 2012 <strong><a href="http://www.bloggingtips.com">Blogging Tips</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please <a href=http://www.bloggingtips.com/contact/>contact us</a> so we can take legal action immediately.<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingtips.com/2009/05/20/adding-custom-icons-to-your-wordpress-theme/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Widgetise Your Theme Part II</title>
		<link>http://www.bloggingtips.com/2009/05/14/widgetise-your-theme-part-ii/</link>
		<comments>http://www.bloggingtips.com/2009/05/14/widgetise-your-theme-part-ii/#comments</comments>
		<pubDate>Thu, 14 May 2009 19:00:46 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[WordPress Coding & Design]]></category>

		<guid isPermaLink="false">http://www.bloggingtips.com/?p=7179</guid>
		<description><![CDATA[Last week I wrote about how to widgetise your theme, and explained how to turn your sidebar into a dynamic sidebar, allowing you to add widgets from within your admin panel, rather than manually coding them into the sidebar. We can now take this one step further and create multiple sidebars/widget &#8216;blocks&#8217;. These don&#8217;t have to always be a full length sidebar, they could be two or three sections in the footer of your site, or perhaps you want a left and right sidebar, or two next to each other. Once they&#8217;re set up however, all you need to do is add the widgets you require to each section. You could even create two different types depending on which section of the site you&#8217;re on, using conditionals So last week we used the basic code in our functions file of: [sourcecode language="php"]if (function_exists(&#8216;register_sidebar&#8217;)) { register_sidebar(array( &#8216;before_widget&#8217; => &#8216; &#8216;, &#8216;after_widget&#8217; ...<p></p>
]]></description>
			<content:encoded><![CDATA[<p>Last week I wrote about how to <a href="http://www.bloggingtips.com/2009/05/07/widgetise-your-theme/">widgetise your theme</a>, and explained how to turn your sidebar into a dynamic sidebar, allowing you to add widgets from within your admin panel, rather than manually coding them into the sidebar. We can now take this one step further and create multiple sidebars/widget &#8216;blocks&#8217;. These don&#8217;t have to always be a full length sidebar, they could be two or three sections in the footer of your site, or perhaps you want a left and right sidebar, or two next to each other. Once they&#8217;re set up however, all you need to do is add the widgets you require to each section. You could even create two different types depending on which section of the site you&#8217;re on, using <a href="http://www.bloggingtips.com/2008/06/29/using-conditional-tags/">conditionals</a></p>
<p>So last week we used the basic code in our functions file of:</p>
<p>[sourcecode language="php"]if (function_exists(&#8216;register_sidebar&#8217;)) {<br />
    register_sidebar(array(<br />
        &#8216;before_widget&#8217; => &#8216;
<li>&#8216;,<br />
        &#8216;after_widget&#8217; => &#8216;</li>
<p>&#8216;,<br />
        &#8216;before_title&#8217; => &#8216;<br />
<h3>&#8216;,<br />
        &#8216;after_title&#8217; => &#8216;</h3>
<p>&#8216;<br />
    ));<br />
}[/sourcecode]</p>
<p>To create multiple sidebars we first need to add the name key into our array to allow us to distinguish between the different registered sidebars. This is a fairly simple change e.g.</p>
<p>[sourcecode language="php"]if (function_exists(&#8216;register_sidebar&#8217;)) {<br />
    register_sidebar(array(<br />
        &#8216;name&#8217; => &#8216;Right Sidebar&#8217;,<br />
        &#8216;before_widget&#8217; => &#8216;
<li>&#8216;,<br />
        &#8216;after_widget&#8217; => &#8216;</li>
<p>&#8216;,<br />
        &#8216;before_title&#8217; => &#8216;<br />
<h3>&#8216;,<br />
        &#8216;after_title&#8217; => &#8216;</h3>
<p>&#8216;<br />
    ));<br />
}[/sourcecode]</p>
<h3>Multiple Sidebars</h3>
<p>To then create a second sidebar you just use a different name for each. You can also change the before and after keys too eg.</p>
<p>[sourcecode language="php"]if (function_exists(&#8216;register_sidebar&#8217;)) {<br />
    register_sidebar(array(<br />
        &#8216;name&#8217; => &#8216;Right Sidebar&#8217;,<br />
        &#8216;before_widget&#8217; => &#8216;
<li>&#8216;,<br />
        &#8216;after_widget&#8217; => &#8216;</li>
<p>&#8216;,<br />
        &#8216;before_title&#8217; => &#8216;<br />
<h3>&#8216;,<br />
        &#8216;after_title&#8217; => &#8216;</h3>
<p>&#8216;<br />
    ));<br />
    register_sidebar(array(<br />
        &#8216;name&#8217; => &#8216;Footer&#8217;,<br />
        &#8216;before_widget&#8217; => &#8216;
<div class="footer_widget">&#8216;,<br />
        &#8216;after_widget&#8217; => &#8216;</div>
<p>&#8216;,<br />
        &#8216;before_title&#8217; => &#8216;<br />
<h3>&#8216;,<br />
        &#8216;after_title&#8217; => &#8216;</h3>
<p>&#8216;<br />
    ));<br />
}[/sourcecode]</p>
<p>When you then want to call a sidebar you need to alter the code in your theme file to include the sidebar name as a parameter of the function dynamic_sidebar() eg.</p>
<p>[sourcecode language="php"]if (!function_exists(&#8216;dynamic_sidebar&#8217;) || !dynamic_sidebar(&#8216;Footer&#8217;)) :<br />
    // enter HTML code here for items such as recent comments, recent posts etc.<br />
endif;[/sourcecode]</p>
<p>We use the register_sidebar() function if we want to give very different names to each sidebar and/or change the before and after code. However, there is also the register_sidebars() function, which can reduce code, providing certain elements are to remain the same. To use the register_sidebars() function we tell the function how many sidebars to register eg.</p>
<p>[sourcecode language="php"]if (function_exists(&#8216;register_sidebars&#8217;)) {<br />
    register_sidebars(2, array(&#8216;name&#8217; => &#8216;Sidebar %d&#8217;));<br />
}[/sourcecode]</p>
<p>This would create two sidebars with the names Sidebar 1 and Sidebar 2. This is an okay solution if you only intend to have maybe a couple of sidebars and you know which one goes where, however for ease of use I would recommend the first method and assign more precise names. Plus if you intend to give your theme away or sell it, then whilst you may know which sidebar is which, the user may not!</p>
<h3>Adding Widgets</h3>
<p>Now when you go to your Widgets section under Appearance, in the admin, you&#8217;ll have a drop down to select which sidebar to add the widget to. This allows you to set up each dynamic sidebar easily.</p>
<hr>Copyright &copy; 2012 <strong><a href="http://www.bloggingtips.com">Blogging Tips</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please <a href=http://www.bloggingtips.com/contact/>contact us</a> so we can take legal action immediately.<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingtips.com/2009/05/14/widgetise-your-theme-part-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Widgetise Your Theme</title>
		<link>http://www.bloggingtips.com/2009/05/07/widgetise-your-theme/</link>
		<comments>http://www.bloggingtips.com/2009/05/07/widgetise-your-theme/#comments</comments>
		<pubDate>Thu, 07 May 2009 19:00:32 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[WordPress Coding & Design]]></category>

		<guid isPermaLink="false">http://www.bloggingtips.com/?p=7031</guid>
		<description><![CDATA[If you want to use widgets in your WordPress theme, or you&#8217;re a theme developer and want to make your theme &#8216;widget ready&#8217;, then all it takes is a couple of steps to add the necessary code in and your theme is good to go. The Function First we need to register the sidebar in our functions.php file (if you don&#8217;t have a functions.php file, create one). At the simplest form this is [sourcecode language="php"]if ( function_exists(&#8216;register_sidebar&#8217;) ) { register_sidebar(); }[/sourcecode] This will set your widgets up in an unordered list with the widget title in a h2 and the content in an unordered list eg. [sourcecode language="html"] Widget Title Widget Item here Another Item Widget Title 2 Widget Item here Another Item [/sourcecode] Of course, this markup isn&#8217;t to everyone&#8217;s liking. Personally I prefer to use h3&#8242;s instead of h2 headings. So to do this we can override the ...<p></p>
]]></description>
			<content:encoded><![CDATA[<p>If you want to use widgets in your WordPress theme, or you&#8217;re a theme developer and want to make your theme &#8216;widget ready&#8217;, then all it takes is a couple of steps to add the necessary code in and your theme is good to go.</p>
<h3>The Function</h3>
<p>First we need to register the sidebar in our functions.php file (if you don&#8217;t have a functions.php file, create one). At the simplest form this is</p>
<p>[sourcecode language="php"]if ( function_exists(&#8216;register_sidebar&#8217;) ) {<br />
    register_sidebar();<br />
}[/sourcecode]</p>
<p>This will set your widgets up in an unordered list with the widget title in a h2 and the content in an unordered list eg.</p>
<p>[sourcecode language="html"]
<ul>
<li>
<h2>Widget Title</h2>
<ul>
<li>Widget Item here</li>
<li>Another Item</li>
</ul>
</li>
<li>
<h2>Widget Title 2</h2>
<ul>
<li>Widget Item here</li>
<li>Another Item</li>
</ul>
</li>
</ul>
<p>[/sourcecode]</p>
<p>Of course, this markup isn&#8217;t to everyone&#8217;s liking. Personally I prefer to use h3&#8242;s instead of h2 headings. So to do this we can override the default settings using the following code:</p>
<p>[sourcecode language="php"]if (function_exists(&#8216;register_sidebar&#8217;)) {<br />
    register_sidebar(array(<br />
        &#8216;before_widget&#8217; => &#8216;
<li>&#8216;,<br />
        &#8216;after_widget&#8217; => &#8216;</li>
<p>&#8216;,<br />
        &#8216;before_title&#8217; => &#8216;<br />
<h3>&#8216;,<br />
        &#8216;after_title&#8217; => &#8216;</h3>
<p>&#8216;,<br />
    ));<br />
}[/sourcecode]</p>
<p>If you want to be able to target the widget&#8217;s output even more then we can add an ID and class to the widget using the following code:</p>
<p>[sourcecode language="php"]if (function_exists(&#8216;register_sidebar&#8217;)) {<br />
    register_sidebar(array(<br />
        &#8216;before_widget&#8217; => &#8216;
<li id="%1$s" class="widget %2$s">&#8216;,<br />
        &#8216;after_widget&#8217; => &#8216;</li>
<p>&#8216;,<br />
        &#8216;before_title&#8217; => &#8216;<br />
<h3>&#8216;,<br />
        &#8216;after_title&#8217; => &#8216;</h3>
<p>&#8216;,<br />
    ));<br />
}[/sourcecode]</p>
<p>The ID is generated from the widget&#8217;s name and the class is generated from the widget&#8217;s callback.</p>
<p>So now we&#8217;ve got our sidebar set up in the functions file you can add widgets via the Appearance -> Widgets menu. Now we need to get them showing on the front end.</p>
<h3>The Sidebar</h3>
<p>The code required for the sidebar is a simple if statement that checks if we&#8217;ve registered a sidebar. If we have then it will show that, otherwise it will display what&#8217;s within the if statement. This is achieved using the following code:</p>
<p>[sourcecode language="php"]if (!function_exists(&#8216;dynamic_sidebar&#8217;) || !dynamic_sidebar()) :[/sourcecode]</p>
<p>This simply says &#8216;if the function dynamic_sidebar() doesn&#8217;t exist, or there&#8217;s no output from the function dynamic_sidebar() display the following&#8217;. Within the if statement you place the code that you want to display if the user doesn&#8217;t add any widgets to their sidebar (even if you&#8217;ve got the functions file and sidebar set up, if no widgets are added then no output is made and so the if condition becomes true and the code within it will display.</p>
<p>So this gives us the final code of</p>
<p>[sourcecode language="php"]if (!function_exists(&#8216;dynamic_sidebar&#8217;) || !dynamic_sidebar()) :<br />
    // enter HTML code here for items such as list categories, pages, recent posts etc.<br />
endif;[/sourcecode]</p>
<h3>Conclusion</h3>
<p>This is a simple addition but with widgets becoming quite popular, it&#8217;s a good idea to add the code in to make your theme even more flexible.</p>
<hr>Copyright &copy; 2012 <strong><a href="http://www.bloggingtips.com">Blogging Tips</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please <a href=http://www.bloggingtips.com/contact/>contact us</a> so we can take legal action immediately.<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingtips.com/2009/05/07/widgetise-your-theme/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Creating Theme Options</title>
		<link>http://www.bloggingtips.com/2009/04/30/creating-theme-options/</link>
		<comments>http://www.bloggingtips.com/2009/04/30/creating-theme-options/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 19:00:19 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[WordPress Coding & Design]]></category>

		<guid isPermaLink="false">http://www.bloggingtips.com/?p=6854</guid>
		<description><![CDATA[If you create WordPress themes then a useful addition to a standard theme is to give the user a simple way to change the logo or header in use, perhaps allow them to change the colour of the background, the width of the site too. These options are designed to save people time but more importantly, to make it easy for non-developers to make a few alterations to their theme without needing to go looking through the code. So first we need to create an admin page to go into the Appearance menu. To do this we can insert the page into the theme&#8217;s functions.php file. We create the page similar to how we created admin pages for our plugin. e.g. [sourcecode language="php"]add_action(&#8216;admin_menu&#8217;, &#8216;ourtheme_add_theme_pg&#8217;); function ourtheme_add_theme_pg() { add_theme_page(__(&#8216;Theme Options&#8217;), __(&#8216;Theme Options&#8217;), &#8216;edit_themes&#8217;, basename(__FILE__), &#8216;ourtheme_functions&#8217;); }[/sourcecode] This will add a new menu item called Theme Options into our Appearance menu in ...<p></p>
]]></description>
			<content:encoded><![CDATA[<p>If you create WordPress themes then a useful addition to a standard theme is to give the user a simple way to change the logo or header in use, perhaps allow them to change the colour of the background, the width of the site too. These options are designed to save people time but more importantly, to make it easy for non-developers to make a few alterations to their theme without needing to go looking through the code.</p>
<p>So first we need to create an admin page to go into the Appearance menu. To do this we can insert the page into the theme&#8217;s functions.php file. We create the page similar to how we <a href="http://www.bloggingtips.com/2009/03/22/creating-a-wordpress-plugin-ii/">created admin pages for our plugin</a>. e.g.</p>
<p>[sourcecode language="php"]add_action(&#8216;admin_menu&#8217;, &#8216;ourtheme_add_theme_pg&#8217;);</p>
<p>function ourtheme_add_theme_pg() {<br />
    add_theme_page(__(&#8216;Theme Options&#8217;), __(&#8216;Theme Options&#8217;), &#8216;edit_themes&#8217;, basename(__FILE__), &#8216;ourtheme_functions&#8217;);<br />
}[/sourcecode]</p>
<p>This will add a new menu item called Theme Options into our Appearance menu in the admin. Then we need to decide what options we&#8217;re going to offer the users. Bear in mind, the more options you offer, the more code is required and the slower the site can become. I&#8217;ve seen a site slow down from 0.5 seconds to 15 seconds load time, just due to a badly written theme options page!</p>
<p>So let&#8217;s allow the user to change the image file used. In the theme directory you can create an images directory to store a number of different banners (or the user can add more of their own), so we&#8217;ll just give them the option of choosing one of these rather than going through the code of how to upload an image to the website.</p>
<h3>The Basic Admin Page</h3>
<p>Let&#8217;s just grab the basic admin page code again to use as our template:</p>
<p>[sourcecode language="html"]
<div class="wrap">
<form id="options_form" method="post" action="">
<h2>< ?php _e('Theme Options'); ?></h2>
<div class="ui-sortable">
<div class="postbox">
<h3 class="hndle">< ?php _e('Sub Header'); ?></h3>
<div class="inside">
<p>					** Form or content goes here **</p></div>
</p></div>
</p></div>
</p></form>
</div>
<p>[/sourcecode]</p>
<h3>List Banners Available</h3>
<p>On the page we&#8217;ll check all of the banners available within the images directory and list them in a select list. We&#8217;ll also pre-select the current one used:</p>
<p>[sourcecode language="php"]
<div><label for="topimg">Top Banner</label></p>
<select id="topimg" name="topimg">
< ?php<br />
$template_dir = get_template_directory();<br />
$default_file = "header.gif";<br />
$allowed_file_ext = array(".gif", ".png", ".jpg", "jpeg");</p>
<p>if (get_option("ourtheme_header")) $default_file = get_option("ourtheme_header");</p>
<p>if ($handle = opendir($template_dir.'/images/')) {<br />
    while (false !== ($file = readdir($handle))) {<br />
        if (in_array(substr($file, -4), $allowed_file_ext) {<br />
            echo "<br />
<option value='".$file."'".($file == $default_file ? ' selected="selected"' : '').">&#8220;.$file.&#8221;\n&#8221;;<br />
        }<br />
    }<br />
    closedir($handle);<br />
}<br />
?><br />
</select>
</div>
<p>[/sourcecode]</p>
<p>Here we open up the images directory within the template directory (found by using the WordPress function <a href="http://codex.wordpress.org/Function_Reference/get_template_directory">get_template_directory()</a>) and then loop through each file found and add it to our select list providing it is an image file (achieved by checking the last 4 characters of each file found against the array of file extensions). This also checks the filename against the current file in use and marks the option as selected if it matches.</p>
<p>This code, along with a submit button is then inserted into our default admin page code above.</p>
<h3>Process the Form</h3>
<p>To process the form all we need to do is check the submit button has been clicked, if it has then grab the image selected and store it in our options table i.e.</p>
<p>[sourcecode language="php"]if (isset($_POST['theme_submit'])) :<br />
    update_option(&#8216;ourtheme_header&#8217;, $_POST['topimg']);<br />
    echo &#8216;
<div id="message" class="updated fade">
<p><strong>&#8216;.__(&#8216;Options saved.&#8217;).&#8217;</strong></p>
</div>
<p>&#8216;;<br />
endif;[/sourcecode]</p>
<h3>Final Admin Code</h3>
<p>This gives us the final code to go into our functions file of:</p>
<p>[sourcecode language="php"]add_action(&#8216;admin_menu&#8217;, &#8216;ourtheme_add_theme_pg&#8217;);</p>
<p>function ourtheme_add_theme_pg() {<br />
    add_theme_page(__(&#8216;Theme Options&#8217;), __(&#8216;Theme Options&#8217;), &#8216;edit_themes&#8217;, basename(__FILE__), &#8216;ourtheme_functions&#8217;);<br />
}</p>
<p>function ourtheme_functions() {<br />
    if (isset($_POST['theme_submit'])) :<br />
        update_option(&#8216;ourtheme_header&#8217;, $_POST['topimg']);<br />
        echo &#8216;
<div id="message" class="updated fade">
<p><strong>&#8216;.__(&#8216;Options saved.&#8217;).&#8217;</strong></p>
</div>
<p>&#8216;;<br />
    endif;<br />
?></p>
<div class="wrap">
<form id="options_form" method="post" action="">
<h2>< ?php _e('Theme Options'); ?></h2>
<div class="ui-sortable">
<div class="postbox">
<h3 class="hndle">< ?php _e('Sub Header'); ?></h3>
<div class="inside">
<div><label for="topimg">Top Banner</label><br />
<select id="topimg" name="topimg">
						< ?php<br />
						$template_dir = get_template_directory();<br />
						$default_file = "header.gif";<br />
						$allowed_file_ext = array(".gif", ".png", ".jpg", "jpeg");</p>
<p>						if (get_option("ourtheme_header")) $default_file = get_option("ourtheme_header");</p>
<p>						if ($handle = opendir($template_dir.'/images/')) {<br />
						    while (false !== ($file = readdir($handle))) {<br />
						        if (in_array(substr($file, -4), $allowed_file_ext)) {<br />
						            echo "<br />
<option value='".$file."'".($file == $default_file ? ' selected="selected"' : '').">&#8220;.$file.&#8221;\n&#8221;;<br />
						        }<br />
						    }<br />
						    closedir($handle);<br />
						}<br />
						?><br />
					</select>
</div></div>
</p></div>
</p></div>
</p></form>
</div>
<p>< ?php } ?>[/sourcecode]</p>
<h3>Front End Edits</h3>
<p>Finally all we need to do is set up the code for the header.php file to check which banner to display. So wherever the banner is displayed we just need to take the default image filename out and use the following PHP code:</p>
<p>[sourcecode language="php"]<img src="< ?php bloginfo('template_url');<br />
$headerimg = "header.gif";<br />
if (get_option("ourtheme_header")) $headerimg = get_option("ourtheme_header");</p>
<p>echo "/images/".$headerimg." />&#8221; alt=&#8221;Top Banner&#8221; />[/sourcecode]</p>
<p>Alternatively, if your banner is using the <a href="http://www.bloggingtips.com/2009/04/02/css-image-replacement/">image replacement technique</a>, then you&#8217;re best off adding an action to add the CSS style needed to the wp_head() function in your function.php theme file e.g.</p>
<p>[sourcecode language="php"]add_action(&#8220;wp_head&#8221;, &#8220;ourtheme_addheader&#8221;);</p>
<p>function ourtheme_addheader() {<br />
    if (get_option(&#8220;ourtheme_header&#8221;)) :<br />
        echo &#8216;<br />
<style type="text/css">#header { background: url('.get_option("ourtheme_header").'); </style>
<p>&#8216;;<br />
    endif;<br />
}[/sourcecode]</p>
<p>This will then insert the style to override the default styling set up in your CSS stylesheet.</p>
<p>This is just a simple example of creating an options page for your theme, but the logic is the same for virtually all the options you could want to offer. Just create the various form elements to allow the user to make their changes, and save the selections and information in the options table using unique option names.</p>
<hr>Copyright &copy; 2012 <strong><a href="http://www.bloggingtips.com">Blogging Tips</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please <a href=http://www.bloggingtips.com/contact/>contact us</a> so we can take legal action immediately.<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingtips.com/2009/04/30/creating-theme-options/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

