<?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>That PHP Girl &#187; plugins</title>
	<atom:link href="http://thatphpgirl.com/tag/plugins/feed/" rel="self" type="application/rss+xml" />
	<link>http://thatphpgirl.com</link>
	<description>PHP, WordPress, and Theme Development</description>
	<lastBuildDate>Mon, 15 Mar 2010 13:57:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>10 Useful Twitter Plugins for Wordpress that Work!</title>
		<link>http://thatphpgirl.com/10-useful-twitter-plugins-for-wordpress-that-work/</link>
		<comments>http://thatphpgirl.com/10-useful-twitter-plugins-for-wordpress-that-work/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 21:26:24 +0000</pubDate>
		<dc:creator>Nikole</dc:creator>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[blog development]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[theme customization]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://thatphpgirl.com/?p=460</guid>
		<description><![CDATA[It seems like there are a million Twitter plugins and widgets for Wordpress, but many are outdated, no longer updated, don&#8217;t work in Wordpress 2.9.x, or are just plain useless. To help you separate the wheat from the chaff, I&#8217;ve compiled this list of ten useful plugins and widget to get your Twitter account playing [...]]]></description>
			<content:encoded><![CDATA[<p>It seems like there are a million Twitter plugins and widgets for Wordpress, but many are outdated, no longer updated, don&#8217;t work in Wordpress 2.9.x, or are just plain useless. To help you separate the wheat from the chaff, I&#8217;ve compiled this list of ten useful plugins and widget to get your Twitter account playing nicely with your WordPress blog.</p>
<ul>
<li><strong><a href="http://rick.jinlabs.com/code/twitter/" target="_new">Twitter for Wordpress</a></strong><br />
This plugin can be coded into your theme or used as a widget. It is a very simple plugin that offers customizable CSS for styling.<br />
<img src="http://thatphpgirl.com/wp-content/uploads/2010/03/Picture-54.png" alt="Twitter for Wordpress Plugin" title="Twitter for Wordpress Plugin" width="488" height="142" class="centered size-full wp-image-466" /></li>
<li><strong><a href="" target="_new">TweetMeme</a></strong><br />
TweetMeme easily allows your blog post or page to be retweeted. It provides a live count of how many times your post/page has been retweeted throughout Twitter, and is a very popular plugin for large brands like TechCrunch and Mashable. The tweets are tracked at TweetMeme.com.<br />
<img src="http://thatphpgirl.com/wp-content/uploads/2010/03/Picture-64.png" alt="TweetMeme Twitter Wordpress Plugin" title="TweetMeme Twitter Wordpress Plugin" width="71" height="78" class="centered size-full wp-image-471" /></li>
<li><strong><a href="http://www.enthropia.com/labs/wp-lifestream/" target="_new">Lifestream for Wordpress</a></strong><br />
Obviously this plugin does a lot more than a twitter feed, but it offers several key advanced features like the use of custom themes for feed display.<br />
<img src="http://thatphpgirl.com/wp-content/uploads/2010/03/Picture-56.png" alt="Lifestream for Wordpress Twitter Plugin" title="Lifestream for Wordpress Twitter Plugin" width="217" height="189" class="centered size-full wp-image-467" /></li>
<li><strong><a href="http://tweetburn.com/tools/" target="_new">Tweetroll / Tweeple</a></strong><br />
These tools give you customizable widgets to show your recent tweets, list your followers, and other stats. There is also an option to monetize your tweets.<br />
<img src="http://thatphpgirl.com/wp-content/uploads/2010/03/Picture-59.png" alt="Tweeple Twitter Wordpress Plugin" title="Tweeple Twitter Wordpress Plugin" width="165" height="469" class="centered size-full wp-image-478" /></li>
<li><strong><a href="http://danzarrella.com/beyond-tweetbacks-introducing-tweetsuite.html" target="_new">TweetSuite</a></strong><br />
TweetSuite offers a whole host of features like tweet tracking, most tweeted, and retweets.<br />
<img src="http://thatphpgirl.com/wp-content/uploads/2010/03/Picture-53.png" alt="TweetSuite Twitter Wordpress Plugin" title="TweetSuite Twitter Wordpress Plugin" width="169" height="187" class="centered size-full wp-image-463" /></li>
<li><strong><a href="http://xavisys.com/wordpress-plugins/wordpress-twitter-widget/" target="_new">Twitter Widget Pro</a></strong><br />
Twitter Widget Pro properly handles and displays your Twitter feed in your blog&#8217;s sidebar.<br />
<img src="http://thatphpgirl.com/wp-content/uploads/2010/03/Picture-62.png" alt="Twitter Widget Pro Twitter Wordpress Plugin" title="Twitter Widget Pro Twitter Wordpress Plugin" width="282" height="268" class="centered size-full wp-image-473" /></li>
<li><strong><a href="http://www.improvingtheweb.com/wordpress-plugins/tweet-stats/" target="_new">Tweet Stats</a></strong><br />
Tweet Stats utilizes the TweetBacks plugin (above) to display &quot;Most Tweeted&quot; and &quot;Recently Tweeted&quot; widgets on your blog.<br />
<img src="http://thatphpgirl.com/wp-content/uploads/2010/03/Picture-52.png" alt="Tweet Stats Twitter Wordpress Plugin" title="Tweet Stats Twitter Wordpress Plugin" width="451" height="216" class="centered size-full wp-image-461" /></li>
<li><strong><a href="http://richardxthripp.thripp.com/tweet-this" target="_new">Tweet This</a></strong><br />
Tweet This adds &quot;Tweet This&quot; icons to your posts, shortens the post URLs, and automatically tweets new posts. <em>Note: This plugin may or may not work in Wordpress 2.9 &mdash; there have been mixed reviews on using it with the latest WordPress release. I&#8217;ve gotten it to work, but your mileage may vary.</em><br />
<img src="http://thatphpgirl.com/wp-content/uploads/2010/03/Picture-58.png" alt="Tweet This Twitter Wordpress Plugin" title="Tweet This Twitter Wordpress Plugin" width="420" height="39" class="centered size-full wp-image-479" /></li>
<li><strong><a href="http://www.webmaster-source.com/tweetable-twitter-plugin-wordpress/" target="_new">Tweetable</a></strong><br />
Tweetable turns your Wordpress admin into a Twitter client with status updates, URL shorteners, and the ability to tweet your posts as they are published.<br />
<img src="http://thatphpgirl.com/wp-content/uploads/2010/03/Picture-60.png" alt="Tweetable Twitter Wordpress Plugin" title="Tweetable Twitter Wordpress Plugin" width="491" height="254" class="centered size-full wp-image-477" /></li>
<li><strong><a href="http://wordpress.org/extend/plugins/twittercounter/" target="_new">TwitterCounter</a></strong><br />
TwitterCounter allows you to easily integrate and customize TwitterCounter.com followers and stats widgets for your sidebar.<br />
<img src="http://thatphpgirl.com/wp-content/uploads/2010/03/Picture-61.png" alt="Twitter Counter Twitter Wordpress Plugin" title="Twitter Counter Twitter Wordpress Plugin" width="221" height="218" class="centered size-full wp-image-476" /></li>
</ul>
<p>Good luck and happy developing!</p>
<p><em>Nikole Gipps is a punctilious web developer, marketing-minded writer, enthusiastic gardener, improvisational cook, loving wife, and fun mother of two. Read more about her work at <a href="http://thatphpgirl.com">That PHP Girl</a> or follow all of her adventures at <a href="http://www.nikolegipps.com">the nhgnikole mashup</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://thatphpgirl.com/10-useful-twitter-plugins-for-wordpress-that-work/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Navigating Your Dreams &#8230; LIVE!</title>
		<link>http://thatphpgirl.com/navigating-your-dreams-live/</link>
		<comments>http://thatphpgirl.com/navigating-your-dreams-live/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 02:18:40 +0000</pubDate>
		<dc:creator>Nikole</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[abstract]]></category>
		<category><![CDATA[blog development]]></category>
		<category><![CDATA[ciara daykin]]></category>
		<category><![CDATA[custom template]]></category>
		<category><![CDATA[daykin productions]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[rockstar wedding planner]]></category>
		<category><![CDATA[shopping cart]]></category>
		<category><![CDATA[that php girl]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[theme customization]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[woo themes]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://thatphpgirl.com/?p=314</guid>
		<description><![CDATA[This fun and flirty version of the Woo Theme &#34;Abstract&#34; has gone through several versions since its launch &#8212; from brochure site to long-form sales page, it has retained its sense of style and marketing power.]]></description>
			<content:encoded><![CDATA[<p>In my latest installment for Rockstar Wedding Planner, Ciara Daykin &amp; crew needed a brochure site for their premiere wedding event for wedding planners, <a href="http://www.rockstarweddingplanner.com/live/" target="_new">Rockstar Wedding Planner LIVE!</a>. This site started out as the <a href="http://www.woothemes.com/2008/12/abstract/" target="_new">Abstract Theme by WooThemes</a>, to which I &#8230;</p>
<ul>
<li>Removed the decorative sidebar and shifted the content left.</li>
<li>Dropped the sidebar lower, modified it to randomly select testimonials, and added a logo to the top of the page on that side.</li>
<li>Created custom backgrounds for the page, header and footer.</li>
<li>Swapped out the footer widgets for a special announcement and a link list (using WordPress links).</li>
<li>Used a structure of pages instead of posts.</li>
<li>Connected to an existing shopping cart to create purchase options.</li>
<li>Changed color schemes and some font treatments to achieve the right look.</li>
<li>Created a graphic for the slogan to connect the elegance and star power of the event.</li>
<li>Formatted the content and pictures for flow.</li>
</ul>
<p>The end result is a flirty and fun site featuring the site owner&#8217;s favorite colors that does a great job in getting across the feel of the event itself. It is a big departure from the original format of the <a href="http://www.rockstarweddingplanner.com/live/" target="_new">Rockstar Wedding Planner LIVE!</a> site, which was more of a long sales form &mdash; and the folks at RSWP couldn&#8217;t be happier with their new design! The event (and the site) are sure to be another smashing success for Daykin Productions.</p>
]]></content:encoded>
			<wfw:commentRss>http://thatphpgirl.com/navigating-your-dreams-live/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Romance is in the Air</title>
		<link>http://thatphpgirl.com/romance-is-in-the-air/</link>
		<comments>http://thatphpgirl.com/romance-is-in-the-air/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 16:27:37 +0000</pubDate>
		<dc:creator>Nikole</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[blog development]]></category>
		<category><![CDATA[Callandra Caufield]]></category>
		<category><![CDATA[cherry tree occasions]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[custom template]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[post archives]]></category>
		<category><![CDATA[royalle]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[that php girl]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[theme customization]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[woo themes]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://thatphpgirl.com/?p=309</guid>
		<description><![CDATA[For the Wedding Planner to the Wildly Romantic, I made a site that would showcase Callandra Caufield's services with beautiful imagery and unique touches.]]></description>
			<content:encoded><![CDATA[<p>Callandra Caufield, a wedding planner in the Canadian Rockies, had a dream in her head but no way to bring that to the web &#8230; until she teamed up with That PHP Girl, that is! I helped to to give life into the dream down to every last detail, from getting her color scheme just right to fine-tuning the user experience on her site. Her site started out as an install of <a href="http://www.woothemes.com/2009/10/royalle/" target="_new">Royalle by WooThemes</a>, and then was modified with:</p>
<ul>
<li>Custom backgrounds throughout.</li>
<li>Dropped navigation in the header, expanded wording in the footer.</li>
<li>Replacement header featuring Callandra&#8217;s fantastic logo.
<li>
<li>A new sidebar that changes from the blog to the static pages, and features a rotating testimonial and social media icons.</li>
<li>SEO helpers like the WPSEO plugin, sitemaps, and search engine pinging.</li>
<li>New blog formatting to suit Callandra&#8217;s needs.</li>
<li>Custom WordPress templates for blog archives, recent posts and testimonials.</li>
</ul>
<p>The end result is the launch of <a href="http://cherrytreeoccasions.com" target="_new">Cherry Tree Occasions &mdash; Wedding Planner to the Wildly Romantic</a>! I think all the small details on this site make it one of my favorites. Callandra and I really came together as a team to make this site great!</p>
]]></content:encoded>
			<wfw:commentRss>http://thatphpgirl.com/romance-is-in-the-air/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Small Changes&#8221; and Theme Purchases</title>
		<link>http://thatphpgirl.com/small-changes-and-theme-purchases/</link>
		<comments>http://thatphpgirl.com/small-changes-and-theme-purchases/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 23:29:05 +0000</pubDate>
		<dc:creator>Nikole</dc:creator>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[theme customization]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://thatphpgirl.com/?p=225</guid>
		<description><![CDATA[I helped a friend out with some small changes to his site recently, Selling the Startup, and it reminded me what happens when a &#34;quick fix&#34; turns into a major problem. Sometimes themes can be a gamble&#8212;just like purchasing the services of any web company&#8212;so it is important to check out reviews and references before [...]]]></description>
			<content:encoded><![CDATA[<p>I helped a friend out with some small changes to his site recently, <a href="http://www.sellingthestartup.com" target="_new">Selling the Startup</a>, and it reminded me what happens when a &quot;quick fix&quot; turns into a major problem. Sometimes themes can be a gamble&mdash;just like purchasing the services of any web company&mdash;so it is important to check out reviews and references before signing your name on the line. I&#8217;ve had great luck with all of the <a href="http://www.woothemes.com/category/themes/" target="_new">Woo Themes</a> I have used so far, but there are a lot of people out there making Wordpress themes for purchase now. I don&#8217;t like to pick on anyone, but it just gets to be a problem when a theme is blocking the display of a user-installed plugin or widget, forcing me to redo the CSS or change the code to make it work. This is just frustrating for me as a developer, and frustrating to a client who has to pay for a simple modification that turns out to be anything but simple.</p>
<p>Of course, if you do get stuck, <a href="http://thatphpgirl.com/please-assist-me/">I&#8217;m always here to help</a>. And Mark, go ahead and tweet your heart out now.</p>
]]></content:encoded>
			<wfw:commentRss>http://thatphpgirl.com/small-changes-and-theme-purchases/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Tech Team Released</title>
		<link>http://thatphpgirl.com/my-tech-team-released/</link>
		<comments>http://thatphpgirl.com/my-tech-team-released/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 14:25:18 +0000</pubDate>
		<dc:creator>Nikole</dc:creator>
				<category><![CDATA[Portfolio]]></category>
		<category><![CDATA[my tech team]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[productum]]></category>
		<category><![CDATA[redesign]]></category>
		<category><![CDATA[that php girl]]></category>
		<category><![CDATA[theme customization]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[woo themes]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://thatphpgirl.com/?p=210</guid>
		<description><![CDATA[My Tech Team is an adaptable, agile company that is ready to meet their customers' needs. Their new site reflects that with user-friendly navigation and frequent service updates.]]></description>
			<content:encoded><![CDATA[<p>Jason Greenwell from My Tech Team chatted with me originally with some questions about copywriting for his site, but then realized he could probably use a facelift for his original site (<a href="http://farm3.static.flickr.com/2643/3805150133_43569ea500_o.png" target="_new">archive image</a>). He chose <a href="http://www.woothemes.com/2009/03/productum/" target="_new">Productum</a> by Woo Themes in Fresh Blue for his base site, and then we added from there.</p>
<p>This project&#8217;s modifications include:</p>
<ul>
<li>Custom PHP/HTML/CSS/Wordpress programming for the order form, footer widgets, menu bars, and sidebars.</li>
<li>Copywriting and typography assistance.</li>
<li>Customizations for the <a href="http://www.ibegin.com/labs/wp-lifestream/" target="_new">Lifestream Plugin for Wordpress</a>, featuring the <a href="http://www.dezinerfolio.com/2008/08/28/on-stage-free-vector-psd-icon-set/" target="_new">On Stage Free Icon Set</a></li>
<li><a href="http://jwloh.deviantart.com/art/Aquaticus-Social-91014249" target="_new">Aquaticus Social &#8211; Free social media icons</a> for the feeds at the bottom right</li>
<li><a href="http://www.wpseo.org" target="_new">WPSEO</a> and <a href="http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/" target="_new">Google XML Sitemaps Generator</a> plugins.</li>
<li>Custom cut-out images for the featured images section.</li>
</ul>
<p>The client is very pleased with how it turned out, and I really enjoyed this project because I got to work with graphics and icons more than I usually do. You can see the final result live now at <a href="http://www.mytechteam.net/" target="_new">MyTechTeam.net</a>.</p>
<p>I did have one noteworthy snag though &#8230; I learned the lesson of saving your work before upgrading! The theme had been upgraded in the past week, and what I thought would be an easy upgrade of the version I modified turned out to be hours of work. I guess a few lines of the new code didn&#8217;t work with the existing site, so I spent a lot of time fishing through to figure out where the problem was. I did figure it out in the end though, which was important to me in terms of presenting a quality product to the client.</p>
]]></content:encoded>
			<wfw:commentRss>http://thatphpgirl.com/my-tech-team-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A Custom WordPress Blog Archives Page</title>
		<link>http://thatphpgirl.com/a-custom-wordpress-blog-archives-page/</link>
		<comments>http://thatphpgirl.com/a-custom-wordpress-blog-archives-page/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 15:05:43 +0000</pubDate>
		<dc:creator>Nikole</dc:creator>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[categories]]></category>
		<category><![CDATA[category achives]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[custom template]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[post archives]]></category>
		<category><![CDATA[user experience]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress functions]]></category>

		<guid isPermaLink="false">http://thatphpgirl.com/?p=155</guid>
		<description><![CDATA[Note: This post assumes you know how to use custom page templates in WordPress as well as know how to edit text php files and upload them through FTP. If you are already lost, you can always hire me to make your custom blog archive page for you.
I make a lot of sites that use [...]]]></description>
			<content:encoded><![CDATA[<p><em>Note: This post assumes you know how to use custom page templates in WordPress as well as know how to edit text php files and upload them through FTP. If you are already lost, you can always <a href="http://thatphpgirl.com/please-assist-me/">hire me to make your custom blog archive page</a> for you.</em></p>
<p>I make a lot of sites that use WordPress as a content management system (CMS) but not with the blog as the front page. For these, I use posts and categories to make various sections of the site using custom templates. My latest example of that is the Blog, Q&amp;A and Latest News sections of the site Hear Florida. For this, I wanted to make an archive page which lists all the categories, subcategories, and posts in what is technically the blog. I am sure someone is going to tell me that a plugin exists to do this thing, but as I tried two that didn&#8217;t work well, I had decided to give up and just use PHP. I also wanted to use as many standard WordPress calls as I could instead of just writing all my own functions.</p>
<p>In this exercise, this is what our final product will look like: <a href="http://www.hearflorida.com/blog-archive/">All Blog Posts Archive &raquo; Hear Florida Audiology Group</a>. It was created in a custom template called &quot;All Posts Archive&quot;. I will be breaking this down by parts and explaining what each part means to help my readers not only see the code, but to know what each part does. I will break this down piece by piece, but as a preview our final code will look like the chunk below.</p>
<blockquote><p>&lt;?php<br />
&nbsp;&nbsp;&nbsp;$all_cats = wp_list_categories(&#8216;hide_empty=0&#038;echo=0&#038;title_li=&#038;exclude=1&#8242;);<br />
&nbsp;&nbsp;&nbsp;$cats_list = explode(&quot;&lt;&quot;, $all_cats);<br />
&nbsp;&nbsp;&nbsp;$build_cat_structure = array();<br />
&nbsp;&nbsp;&nbsp;$array_counter = 0;<br />
&nbsp;&nbsp;&nbsp;foreach ($cats_list as $value) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$string_start = substr($value, 0, 3);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($string_start == &quot;li &quot; || $string_start == &quot;/a&gt;&quot; || $string_start == &quot;/li&quot;) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elseif ($string_start == &quot;ul &quot;) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$build_cat_structure[$array_counter] = &quot;start_child&quot;; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$array_counter = $array_counter + 1; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elseif ($string_start == &quot;/ul&quot;) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$build_cat_structure[$array_counter] = &quot;end_child&quot;; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$array_counter = $array_counter + 1; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elseif ($string_start == &quot;a h&quot;) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$cat_name = explode(&quot;&gt;&quot;, $value);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$build_cat_structure[$array_counter] = $cat_name[1];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$array_counter = $array_counter + 1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;echo &quot;&lt;ul&gt;&quot;;<br />
&nbsp;&nbsp;&nbsp;foreach ($build_cat_structure as $value) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($value == &quot;start_child&quot;) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;&lt;ul&gt;\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elseif ($value == &quot;end_child&quot;) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;&lt;/ul&gt;\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$category_id = get_cat_id($value);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &#8216;&lt;li&gt;&lt;a href=&quot;&#8217; . get_category_link($category_id) . &#8216;&quot;&gt;&#8217; . category_description($category_id) . &quot;&lt;/a&gt;&lt;/li&gt;\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$children = wp_list_categories(&#8216;echo=0&#038;child_of=&#8217; . $category_id . &#8216;&#038;title_li=&#8217;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$find_me = stripos($children, &quot;No categories&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($find_me !== FALSE) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;&lt;ul&gt;\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$the_query = new WP_Query(&#8216;cat=&#8217; . $category_id);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while ($the_query-&gt;have_posts()) : $the_query-&gt;the_post(); $do_not_duplicate = $post-&gt;ID; ?&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a title=&quot;&lt;?php the_title(); ?&gt;&quot; href=&quot;&lt;?php the_permalink(); ?&gt;&quot;&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/li&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?php endwhile;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;&lt;/ul&gt;\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;echo &quot;&lt;/ul&gt;&quot;;<br />
?&gt;</p></blockquote>
<p>The first part pulls the categories and puts them into a list. If you wanted to shape the final outcome of the display, you could change the settings of wp_list_categories() here. For example, setting hide_empty=1 instead of 0, you could hide any categories that you have without posts. I have chosen to exclude the Uncategorized category (category #1), but if you wanted yours listed just removed the exclude=1 part. Or, if you would like to exclude other categories, just list them by number (exclude=1,5,6 for example). The echo=0 is important here because it puts the results into a variable instead of displaying them.</p>
<blockquote><p>&nbsp;&nbsp;&nbsp;$all_cats = wp_list_categories(&#8216;hide_empty=0&#038;echo=0&#038;title_li=&#038;exclude=1&#8242;);</p></blockquote>
<p>Once the result of <a href="http://codex.wordpress.org/Template_Tags/wp_list_categories">wp_list_categories</a> is dumped into the variable all_cats, it is broken apart into text chunks using the character &lt; as the divider.</p>
<blockquote><p>&nbsp;&nbsp;&nbsp;$cats_list = explode(&quot;&lt;&quot;, $all_cats);</p></blockquote>
<p>This basically puts every html chunk into it&#8217;s own entry in an array. (If at any point you want to see your results, feel free to do a var_dump($last_variable); and it will show you what you are working with.) I do this to set up the processing of the information in the next set of steps.</p>
<blockquote><p>&nbsp;&nbsp;&nbsp;$build_cat_structure = array();<br />
&nbsp;&nbsp;&nbsp;$array_counter = 0;</p></blockquote>
<p>This sets up an empty array which we will fill in the loop below, and starts our array key counter at 0.</p>
<blockquote><p>&nbsp;&nbsp;&nbsp;foreach ($cats_list as $value) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$string_start = substr($value, 0, 3);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($string_start == &quot;li &quot; || $string_start == &quot;/a&gt;&quot; || $string_start == &quot;/li&quot;) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;continue; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elseif ($string_start == &quot;ul &quot;) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$build_cat_structure[$array_counter] = &quot;start_child&quot;; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$array_counter = $array_counter + 1; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elseif ($string_start == &quot;/ul&quot;) { <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$build_cat_structure[$array_counter] = &quot;end_child&quot;; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$array_counter = $array_counter + 1; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elseif ($string_start == &quot;a h&quot;) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$cat_name = explode(&quot;&gt;&quot;, $value);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$build_cat_structure[$array_counter] = $cat_name[1];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$array_counter = $array_counter + 1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}</p></blockquote>
<p>This is where I have it to loop through the array I made by the earlier <a href="http://www.php.net/explode">explode()</a> command to set up the final array which will produce the display. By taking the first three letters of each array item as a seed, I can see where the html is going and reflect that in the final build. If the string starts with something that doesn&#8217;t influence the final outcome (the start of a list item, the end of a list item, and the end of a anchor tag), the command continue is issued to loop forward on to the next item. If hierarchy is detected (the start or end of an unordered list), a designation is added into the array and the counter advances. If the start of a link is detected (&quot;a h&quot; is the start of a href), it breaks apart that line using explode to pull out the name of the category. The category name is then added to the array and the counter is advanced.</p>
<p>These last parts are where I put it all together and display the data by looping through the array I built earlier ($build_cat_structure). You could probably do this differently or combine the above and below parts instead of looping through twice, but I liked it like this so I could use the data in other ways if I wanted to.</p>
<blockquote><p>&nbsp;&nbsp;&nbsp;echo &quot;&lt;ul&gt;&quot;;<br />
&nbsp;&nbsp;&nbsp;foreach ($build_cat_structure as $value) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($value == &quot;start_child&quot;) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;&lt;ul&gt;\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;elseif ($value == &quot;end_child&quot;) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;&lt;/ul&gt;\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p></blockquote>
<p>This makes/ends a nested unordered list If it hits my start/end child marker, which makes the category hierarchy work. This is also a good chance to add specific styling to the inside nest lists, if that is what you want.</p>
<blockquote><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$category_id = get_cat_id($value);</p></blockquote>
<p>The start of the else tells the script what to do if it encounters the name of a category, or something that is not the start or end of a nested list. The next line converts our category name to a category ID using the <a href="http://codex.wordpress.org/Function_Reference/get_cat_ID">get_cat_id()</a> function.</p>
<blockquote><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &#8216;&lt;li&gt;&lt;a href=&quot;&#8217; . get_category_link($category_id) . &#8216;&quot;&gt;&#8217; . category_description($category_id) . &quot;&lt;/a&gt;&lt;/li&gt;\n&quot;;</p></blockquote>
<p>This displays the category in a list item with a link to the archive of that category using <a href="http://codex.wordpress.org/Function_Reference/get_category_link">get_category_link()</a>. I use <a href="http://codex.wordpress.org/Template_Tags/category_description">category_description()</a> here because my template is set up where the category name is a shorter version that is used for the sidebar and the category description is a longer version used for display. If you wanted to use the name instead, just replace category_description($category_id) with $value.</p>
<blockquote><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$children = wp_list_categories(&#8216;echo=0&#038;child_of=&#8217; . $category_id . &#8216;&#038;title_li=&#8217;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$find_me = stripos($children, &quot;No categories&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($find_me !== FALSE) {</p></blockquote>
<p>This special handling function checks to see if the current category is a parent of other categories. For example, on my final page (<a href="http://www.hearflorida.com/blog-archive/">All Blog Posts Archive &raquo; Hear Florida Audiology Group</a>), there is a main category of Blog for which I don&#8217;t want the posts listed. I want the posts listed under their sub categories, so it skips the post by post listing if the current category is a parent of other categories. A category that is not a parent of others will have something like &quot;&lt;li&gt;No Categories&lt;/li&gt;&quot; as the result of the above <a href="http://codex.wordpress.org/Template_Tags/wp_list_categories">wp_list_categories(child_of=)</a> call. The ($find_me !== FALSE) part creates a situation where the posts are only being displayed where the phrase &#8220;No Categories&#8221; is found.</p>
<blockquote><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;&lt;ul&gt;\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$the_query = new WP_Query(&#8216;cat=&#8217; . $category_id);&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while ($the_query-&gt;have_posts()) : $the_query-&gt;the_post(); $do_not_duplicate = $post-&gt;ID; ?&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;li&gt;&lt;a title=&quot;&lt;?php the_title(); ?&gt;&quot; href=&quot;&lt;?php the_permalink(); ?&gt;&quot;&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/li&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;?php endwhile;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo &quot;&lt;/ul&gt;\n&quot;;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;echo &quot;&lt;/ul&gt;&quot;;</p></blockquote>
<p>This last part creates another nesting with all of the posts for each category using <a href="http://codex.wordpress.org/Function_Reference/WP_Query">WP_Query</a>. The posts are displayed with their title and permalinks. Then everything is closed up and all the unordered lists are given end tags.</p>
<p>Overall I am pleased with my results and how it turned out in terms of giving the user a clear way to look through older posts by category and view all posts as a whole.</p>
]]></content:encoded>
			<wfw:commentRss>http://thatphpgirl.com/a-custom-wordpress-blog-archives-page/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Changing your Wordpress URL (Fantastico Install)</title>
		<link>http://thatphpgirl.com/changing-your-wordpress-url-fantastico-install/</link>
		<comments>http://thatphpgirl.com/changing-your-wordpress-url-fantastico-install/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 02:04:17 +0000</pubDate>
		<dc:creator>Nikole</dc:creator>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[Fantastico]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[upgrade]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://thatphpgirl.com/?p=123</guid>
		<description><![CDATA[If you used parts of my post on Moving and Upgrading your WordPress to change your blog&#8217;s URL (if say, for example, you were trying to take a development site live with the final URL), and something still isn&#8217;t working right, check your .htaccess and wp-config.php files&#8212;especially if you installed WordPress through Fantastico.
I recently ran [...]]]></description>
			<content:encoded><![CDATA[<p>If you used parts of my post on <a href="http://thatphpgirl.com/moving-and-upgrading-your-wordpress/">Moving and Upgrading your WordPress</a> to change your blog&#8217;s URL (if say, for example, you were trying to take a development site live with the final URL), and something still isn&#8217;t working right, check your .htaccess and wp-config.php files&mdash;especially if you installed WordPress through Fantastico.</p>
<p>I recently ran into this problem on <a href="http://www.sheandheplanweddings.com/">She &amp; He Plan Weddings</a>. I had changed the blog&#8217;s URL in phpMyAdmin, but several items were still not working (including the admin) because it was directing me back to the development URL. I checked and rechecked the WordPress settings, the database, everything. The problem was with .htaccess and wp-config.php. I didn&#8217;t install WordPress on this site&mdash;I only came in to redo the theme and make some customizations&mdash;and I&#8217;ve always used a fresh Wordpress.org install instead of using host-based installers.</p>
<p>The first problem was with .htaccess. Somehow the .htaccess file became unwritable (whether it was intentional by the blog installer or it is some Fantastico default), and the new blog URL was not being reflected. Changing the .htaccess file from this:</p>
<blockquote><p># BEGIN WordPress<br />
&lt;IfModule mod_rewrite.c&gt;<br />
RewriteEngine On<br />
RewriteBase /~ciaraine/<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule . /~ciaraine/index.php [L]<br />
&lt;/IfModule&gt;</p>
<p># END WordPress</p>
</blockquote>
<p>to this:</p>
<blockquote><p># BEGIN WordPress<br />
&lt;IfModule mod_rewrite.c&gt;<br />
RewriteEngine On<br />
RewriteBase /<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule . /index.php [L]<br />
&lt;/IfModule&gt;</p>
<p># END WordPress</p>
</blockquote>
<p>solved that problem entirely. If you&#8217;ll see, the first one was assuming the site&#8217;s URL should be http://gator872.hostgator.com/~ciaraine/, as it was in development. The second one reflects the removal of the directory, as the final site appeared to be at a root level at <a href="http://www.sheandheplanweddings.com/">http://www.sheandheplanweddings.com/</a>.</p>
<p>For more information (and to prevent problems for yourself), <a href="http://codex.wordpress.org/Changing_File_Permissions">WordPress has this guide on how to make your files have the correct permissions</a>. If you want to leave the .htaccess file unwritable, you&#8217;ll have to use the method I have outlined here.</p>
<p>The second problem was with the wp-config.php file, which is located in the root folder of your WordPress install. A Fantastico install includes this line:</p>
<blockquote><p>define(&#8216;WP_SITEURL&#8217;, &#8216;http://your-url-here.com&#8217;);</p>
</blockquote>
<p>that I have never seen on a self-installed WordPress installation. (Just to be sure, I <a href="http://wordpress.org/download/">downloaded the new WordPress 2.8.1</a> and checked the wp-config-sample.php file&mdash;and no, it&#8217;s not in there.) This line, again, was forcing the URL to be the original http://gator872.hostgator.com/~ciaraine/ instead of the new <a href="http://www.sheandheplanweddings.com/">http://www.sheandheplanweddings.com/</a>. I set this element to read</p>
<blockquote><p>define(&#8216;WP_SITEURL&#8217;, &#8216;http://www.sheandheplanweddings.com&#8217;);</p>
</blockquote>
<p>but I probably could have just deleted out the line entirely as well.</p>
<p>I hope this post saves someone else from the hassle I just went through trying to push this site live. I think the whole experience also reinforced my habit of doing things &quot;the long way&quot; (by downloading WordPress and installing it myself) instead of relying on one-click installers like Fantastico. While these sort of things are good for those who are unfamiliar with installing software or for saving time, I think there is value into knowing every setting going into your install by doing it yourself.</p>
]]></content:encoded>
			<wfw:commentRss>http://thatphpgirl.com/changing-your-wordpress-url-fantastico-install/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Moving and Upgrading your WordPress</title>
		<link>http://thatphpgirl.com/moving-and-upgrading-your-wordpress/</link>
		<comments>http://thatphpgirl.com/moving-and-upgrading-your-wordpress/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 05:34:13 +0000</pubDate>
		<dc:creator>Nikole</dc:creator>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[upgrade]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://thatphpgirl.com/?p=103</guid>
		<description><![CDATA[Note: This post assumes you are using the self-installed WordPress on a Linux-based server running MySQL and phpMyAdmin. It also assumes that all your current plugins and your current theme is compatible with the latest version of WordPress.
Please read through all of these instructions and make sure you know what they mean before you begin. [...]]]></description>
			<content:encoded><![CDATA[<p><i>Note: This post assumes you are using the self-installed WordPress on a Linux-based server running MySQL and phpMyAdmin. It also assumes that all your current plugins and your current theme is compatible with the latest version of WordPress.</i></p>
<p>Please read through all of these instructions and make sure you know what they mean before you begin. Backing up your site and database before any transfer is always a wise move.</p>
<h2>Step 1: Download your Database</h2>
<p>Log into your database through phpMyAdmin and go to the Export tab. Use these values for your export:</p>
<ul>
<li>Export ALL TABLES in SQL format.</li>
<li>Check STRUCTURE, and then &quot;Add IF NOT EXISTS&quot;, &quot;Add AUTO_INCREMENT value&quot;, and &quot;Enclose table and field names with backquotes&quot;.</li>
<li>Check DATA and then &quot;Complete inserts&quot;, &quot;Extended inserts&quot;, &quot;Use hexadecimal for BLOB&quot;, and &quot;Export type INSERT&quot;.</li>
<li>Check SAVE AS FILE and save to your hard drive.</li>
</ul>
<h2>Step 2: Download your Current Site</h2>
<p>FTP to your current site and download the following items:</p>
<ul>
<li>The folder WP-CONTENT.</li>
<li>The file WP-CONFIG.PHP.</li>
<li>Any files or folders you may have added outside the WordPress structure, like a CSS or IMAGES directory.</li>
</ul>
<h2>Step 3: Upload your New WordPress</h2>
<p>For a general discussion of installing WordPress, see the <a href="http://codex.wordpress.org/Installing_WordPress#Famous_5-Minute_Install">5-minute Installation Guide at WordPress.org</a>. For this, you will be doing things a bit differently because you are transferring a blog, not just installing a new one.</p>
<ol>
<li><a href="http://wordpress.org/download/">Download the latest version of WordPress</a>. Unpack the files and upload everything but the WP-CONFIG-SAMPLE.PHP file to your new server.</li>
<li>Upload your old custom theme (in the WP-CONTENT folder you downloaded earlier) and any images/css/etc you may have had outside the WordPress folder structure at your old site.</li>
<li>Open the new WP-CONFIG-SAMPLE.PHP file and your old WP-CONFIG.PHP file. You will be modifying the WP-CONFIG-SAMPLE.PHP file. Follow the instructions in the file to get your <a href="https://api.wordpress.org/secret-key/1.1/">Secret API Key</a>. Then use the information in your old WP-CONFIG.PHP for the database and username, and get the hostname from your new host. Save this WP-CONFIG-SAMPLE.PHP file on your hard drive, rename it to WP-CONFIG.PHP and upload it to your new server at the root file level. (See below for additional notes on the WP-CONFIG.PHP file and changes you may have to make to it.)</li>
<li>Hold off on uploading your existing plugins until you are sure your upgrade installation is working.</li>
</ol>
<h2>Step 4: Set Up your New Database</h2>
<p>Log into the phMyAdmin on your new host, click on the Import tab, and Import the SQL file you downloaded in step 1. If for some reason you can&#8217;t use the original database and/or username, make sure you put the new database and/or username in your WP-CONFIG.PHP file on your new server. If you have changed your base URL, see the special instructions below before proceeding on to step 5.</p>
<h2>Step 5: Install and Upgrade your Database</h2>
<p>Go to the install URL on your new site, http://example.com/wp-admin/install.php for example, and follow the instructions to install WordPress and upgrade the database (if needed/prompted to do so).</p>
<h2>Step 6: Add Plugins</h2>
<p>If you had plugins originally installed, and your site is now working, you can upload the plugins in your original WP-CONTENT/PLUGINS folder back to the new site. Once they are uploaded, the WP-ADMIN will tell you if there are updates available for these plugins before you enable them.</p>
<h2>Special Step: If You Changed the URL</h2>
<p>If you have changed the site URL, or you&#8217;ve gone from a temporary URL (such as http://hostname.com/~your_account/) to your permanent URL (http://www.your_domain.com), you will need to follow this additional instruction between steps 4 and 5 above:</p>
<ol>
<li>Log in to phpMyAdmin and click on the SQL tab.</li>
<li>Enter the following code into the SQL window<br />
<blockquote><p>
UPDATE wp_options SET option_value = &#8216;http://new-url.com&#8217; WHERE option_name = &#8216;home&#8217;;<br />
UPDATE wp_options SET option_value = &#8216;http://new-url.com&#8217; WHERE option_name = &#8217;siteurl&#8217;;<br />
UPDATE wp_posts SET guid = replace(guid, &#8216;http://old-url.com&#8217;,'http://new-url.com&#8217;);<br />
UPDATE wp_posts SET post_content = replace(post_content, &#8216;http://old-url.com&#8217;, &#8216;http://new-url.com&#8217;);
</p></blockquote>
<p>replacing &quot;http://new-url.com&quot; with your new URL, &quot;http://old-url.com&quot; with your old URL, and wp_ (as in wp_posts, wp_options) with your table prefix. (The default on WordPress is wp_ but you may have changed it on your previous installation. If your default is not wp_ in your tables, you&#8217;ll also make sure this table prefix is reflected in your new WP-CONFIG.PHP file and re-upload before proceeding to step 5.)</li>
</ol>
<p>And there you have it! If you need additional assistance or your custom theme needs to be updated to work with the newest version of WordPress, consider <a href="http://thatphpgirl.com">hiring That PHP Girl</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://thatphpgirl.com/moving-and-upgrading-your-wordpress/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
