<?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>PypelineWeb.com</title>
	<atom:link href="http://www.jarrodpyper.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jarrodpyper.com</link>
	<description>Websites, Well Done.</description>
	<lastBuildDate>Wed, 22 May 2013 00:12:47 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Remove posts or pages from menu when trashed (or set to draft)</title>
		<link>http://www.jarrodpyper.com/blog/remove-posts-or-pages-from-menu-when-or-trashed-or-set-to-draft/</link>
		<comments>http://www.jarrodpyper.com/blog/remove-posts-or-pages-from-menu-when-or-trashed-or-set-to-draft/#comments</comments>
		<pubDate>Wed, 22 May 2013 00:08:04 +0000</pubDate>
		<dc:creator>jarrod</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Code Snippets]]></category>

		<guid isPermaLink="false">http://www.jarrodpyper.com/?p=290</guid>
		<description><![CDATA[http://www.jarrodpyper.com/blog/remove-posts-or-pages-from-menu-when-or-trashed-or-set-to-draft/<div><a href="" title="Remove posts or pages from menu when trashed (or set to draft)"></a></div>Ever wanted posts to be removed from a menu when deleted? Maybe. Ever wanted them removed when set to draft? Less likely but I&#8217;ll tell you how to do both anyway! The first is really easy and I pulled the solution from an open ticket on WordPress Trac. add_action( 'wp_trash_post', '_wp_delete_post_menu_item' ); and that&#8217;s it. [...]]]></description>
	http://www.jarrodpyper.com/blog/remove-posts-or-pages-from-menu-when-or-trashed-or-set-to-draft/			<content:encoded><![CDATA[<div><a href="" title="Remove posts or pages from menu when trashed (or set to draft)"></a></div><p>Ever wanted posts to be removed from a menu when deleted? Maybe. Ever wanted them removed when set to draft? Less likely but I&#8217;ll tell you how to do both anyway!</p>
<p>The first is really easy and I pulled the solution from an open <a href="http://core.trac.wordpress.org/ticket/19038" target="_blank">ticket</a> on WordPress Trac.</p>
<p><code>add_action( 'wp_trash_post', '_wp_delete_post_menu_item' );</code></p>
<p>and that&#8217;s it. that line can go into a plugin or your functions.php file (plugin is more appropriate). It&#8217;s hooking into the action of putting a post in the trash (which carries with it the post ID) and calling the function to remove any corresponding menu items from any custom menu. easy.</p>
<p>If you&#8217;d like to have published posts (even custom post types) that get set back to draft taken out of the menu, you can use a function like this:</p>
<p><code>function pype_remove_draft_from_menu($post) {<br />
&nbsp;&nbsp;&nbsp;_wp_delete_post_menu_item($post-&gt;ID);<br />
}<br />
add_action( 'publish_to_draft', 'pype_remove_draft_from_menu');</code></p>
<p>also easy! This uses one of the post transition hooks, which takes the form of <code>$oldstatus_to_$newstatus</code> So if you wanted to catch posts moving from draft into published you would name the hook <code>draft_to_publish</code></p>
<p>Related, a useful post status to use is the &#8220;auto-draft&#8221; which is the status given when you click &#8220;add new&#8221; and haven&#8217;t saved anything yet. This can be used to set up default content or settings for a post. In the past I&#8217;ve used it to set comments off by default for a particular post type. I might as well show you how:</p>
<p><code>function pype_default_comments_off( $data, $postarr ) {<br />
&nbsp;&nbsp;&nbsp;if( $data['post_type'] == 'post' &amp;&amp; $data['post_status'] == 'auto-draft' ) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data['comment_status'] = 'closed';<br />
&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;return $data;<br />
}<br />
add_filter( 'wp_insert_post_data', 'pype_default_comments_off', 99, 2 );</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jarrodpyper.com/blog/remove-posts-or-pages-from-menu-when-or-trashed-or-set-to-draft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Clearing WordPress Cached Feeds: Transients</title>
		<link>http://www.jarrodpyper.com/blog/clearing-wordpress-cached-feeds-transients/</link>
		<comments>http://www.jarrodpyper.com/blog/clearing-wordpress-cached-feeds-transients/#comments</comments>
		<pubDate>Tue, 29 Jan 2013 20:24:22 +0000</pubDate>
		<dc:creator>jarrod</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Code Snippets]]></category>

		<guid isPermaLink="false">http://www.jarrodpyper.com/?p=278</guid>
		<description><![CDATA[http://www.jarrodpyper.com/blog/clearing-wordpress-cached-feeds-transients/<div><a href="" title="Clearing WordPress Cached Feeds: Transients"></a></div>I&#8217;ve been doing a ton of work with RSS feeds lately, using them to sync data across nearly 2000 sites. I was running into an issue with WP caching of feeds. There&#8217;s a filter to change how long WP holds the RSS feed information in cache and is easy to use (link): function lower_feed_cache_time() { [...]]]></description>
	http://www.jarrodpyper.com/blog/clearing-wordpress-cached-feeds-transients/			<content:encoded><![CDATA[<div><a href="" title="Clearing WordPress Cached Feeds: Transients"></a></div><p>I&#8217;ve been doing a ton of work with RSS feeds lately, using them to sync data across nearly 2000 sites. I was running into an issue with WP caching of feeds. There&#8217;s a filter to change how long WP holds the RSS feed information in cache and is easy to use (<a title="wp_feed_cache_transient_lifetime" href="http://codex.wordpress.org/Plugin_API/Filter_Reference/wp_feed_cache_transient_lifetime" target="_blank">link</a>):</p>
<p><code><br />
function lower_feed_cache_time() {<br />
  return 3600;<br />
}<br />
add_filter( 'wp_feed_cache_transient_lifetime', 'lower_feed_cache_time' );<br />
</code></p>
<p>This lowers the time it caches feeds for to 1 hour (3600 seconds), down from a default of 12 hours. This didn&#8217;t really work well for me though because I only wanted to have the cache dumped when I was manually syncing my RSS feeds. So instead I wrote a function that uses an SQL query to delete the feed transients in the options table. It looks like this:</p>
<p><code><br />
function clear_feed_cache() {<br />
  global $wpdb;</p>
<p>  $num = $wpdb-&gt;query($wpdb-&gt;prepare("DELETE FROM $wpdb-&gt;options WHERE option_name LIKE %s ", '_transient_feed_%'));<br />
  error_log($num.' feed transients deleted by');<br />
}<br />
</code><br />
This function gets the global $wpdb variable, holding the database information for your site. This functions works in multisite because $wpdb-&gt;options holds the name of the options table for the current site you are on. It&#8217;s looking for options that have the name like _transient_feed_% &#8211; the % being a wildcard. The error_log line comes in handy because it lets me know how many rows were deleted (or if something went wrong and no rows got deleted). Using the error log and running tail -f on it from the command line can be a great help during development. &#8216;tail -f error_log&#8217; will track the error_log as errors happen, you can see them scroll by. I keep it open a lot.</p>
<p>I hope this helps solve your RSS feed cache problems!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jarrodpyper.com/blog/clearing-wordpress-cached-feeds-transients/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Central Wesleyan Church</title>
		<link>http://www.jarrodpyper.com/portfolio/central-wesleyan-church/</link>
		<comments>http://www.jarrodpyper.com/portfolio/central-wesleyan-church/#comments</comments>
		<pubDate>Tue, 05 Jun 2012 12:07:07 +0000</pubDate>
		<dc:creator>jarrod</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://www.jarrodpyper.com/?p=253</guid>
		<description><![CDATA[http://www.jarrodpyper.com/portfolio/central-wesleyan-church/<img src="http://www.jarrodpyper.com/wp-content/uploads/2012/06/cwc260x196-260x197-tc.png" width="260" height="197" class="post-image" alt="Central Wesleyan Church" title="Central Wesleyan Church" /><div><a href="" title="Central Wesleyan Church"><img src="http://www.jarrodpyper.com/wp-content/uploads/2012/06/cwc260x196-260x197-tc.png" width="260" height="197" class="post-image" alt="Central Wesleyan Church" title="Central Wesleyan Church" /></a></div>]]></description>
	http://www.jarrodpyper.com/portfolio/central-wesleyan-church/<img src="http://www.jarrodpyper.com/wp-content/uploads/2012/06/cwc260x196-260x197-tc.png" width="260" height="197" class="post-image" alt="Central Wesleyan Church" title="Central Wesleyan Church" />			<content:encoded><![CDATA[<div><a href="" title="Central Wesleyan Church"><img src="http://www.jarrodpyper.com/wp-content/uploads/2012/06/cwc260x196-260x197-tc.png" width="260" height="197" class="post-image" alt="Central Wesleyan Church" title="Central Wesleyan Church" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.jarrodpyper.com/portfolio/central-wesleyan-church/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My favorite way to install WordPress (SSH)</title>
		<link>http://www.jarrodpyper.com/blog/my-favorite-way-to-install-wordpress-ssh/</link>
		<comments>http://www.jarrodpyper.com/blog/my-favorite-way-to-install-wordpress-ssh/#comments</comments>
		<pubDate>Sat, 07 Apr 2012 16:32:27 +0000</pubDate>
		<dc:creator>jarrod</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Code Snippets]]></category>

		<guid isPermaLink="false">http://www.jarrodpyper.com/?p=251</guid>
		<description><![CDATA[http://www.jarrodpyper.com/blog/my-favorite-way-to-install-wordpress-ssh/<div><a href="" title="My favorite way to install WordPress (SSH)"></a></div>The first one to show me most of this was my friend Topher and I added an extra command. It&#8217;s the fastest way to install a fresh version of WordPress on an empty server just waiting for it. You&#8217;ll need SSH access enables for the server, and you&#8217;ll need to connect to the server using a [...]]]></description>
	http://www.jarrodpyper.com/blog/my-favorite-way-to-install-wordpress-ssh/			<content:encoded><![CDATA[<div><a href="" title="My favorite way to install WordPress (SSH)"></a></div><p>The first one to show me most of this was my friend <a title="Topher DeRosia" href="http://derosia.com/">Topher</a> and I added an extra command.</p>
<p>It&#8217;s the fastest way to install a fresh version of WordPress on an empty server just waiting for it. You&#8217;ll need SSH access enables for the server, and you&#8217;ll need to connect to the server using a Terminal window.</p>
<p>First, open your terminal and connect to the server over ssh like so:</p>
<pre>ssh -l yourusername yoursite.com</pre>
<p>and hit enter. It will ask if you&#8217;re sure you want to accept the connection, and as long as you know what you&#8217;re connecting to, type <strong>yes</strong> (the whole word) and hit enter.</p>
<p>Once you log in, type <strong>ls</strong> to list the files and folders you can see currently. Use the command</p>
<pre>cd foldername</pre>
<p>to move into (change directory) that folder. You want to get to where WP needs to be installed. Once there, we&#8217;re at the fun part. Enter the following commands one at a time:</p>
<pre>wget http://wordpress.org/latest.tar.gz
tar xvzf latest.tar.gz
mv wordpress/* ./
rmdir wordpress
rm latest.tar.gz</pre>
<p>Here&#8217;s what it does:</p>
<ul>
<li>Download the latest version of WordPress from wordpress.org</li>
<li>unzip what was downloaded</li>
<li>move all the files out of the &#8220;wordpress&#8221; folder and into your current directory</li>
<li>delete the now empty wordpress folder</li>
<li>delete the zipped file we downloaded in step one</li>
</ul>
<p>This all happens much faster than it would using FTP, and much more securely (FTP isn&#8217;t very secure at all).</p>
<p>Continue your WP install as usual. This is the fastest way to get it onto your server. Have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jarrodpyper.com/blog/my-favorite-way-to-install-wordpress-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Include plugin content in your get_the_content call</title>
		<link>http://www.jarrodpyper.com/blog/include-plugin-content-in-your-get_the_content-call/</link>
		<comments>http://www.jarrodpyper.com/blog/include-plugin-content-in-your-get_the_content-call/#comments</comments>
		<pubDate>Thu, 05 Apr 2012 14:02:24 +0000</pubDate>
		<dc:creator>jarrod</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Code Snippets]]></category>

		<guid isPermaLink="false">http://www.jarrodpyper.com/?p=247</guid>
		<description><![CDATA[http://www.jarrodpyper.com/blog/include-plugin-content-in-your-get_the_content-call/<div><a href="" title="Include plugin content in your get_the_content call"></a></div>First, let&#8217;s define when you&#8217;d use this. Here&#8217;s where I as at. I was pulling in a most recent post into a page that was not the blog. Not just onto a page, but into a custom post type (for displaying small content on the home page) that only had a couple of fields available [...]]]></description>
	http://www.jarrodpyper.com/blog/include-plugin-content-in-your-get_the_content-call/			<content:encoded><![CDATA[<div><a href="" title="Include plugin content in your get_the_content call"></a></div><p>First, let&#8217;s define when you&#8217;d use this. Here&#8217;s where I as at.</p>
<p>I was pulling in a most recent post into a page that was not the blog. Not just onto a page, but into a custom post type (for displaying small content on the home page) that only had a couple of fields available to me for use. These posts have PodPress podcasts attached to them, and I needed that information. I needed to make it simple for the user, so I wanted to make a shortcode to pull the most recent post.</p>
<p>If you&#8217;re in the loop and you call <a title="WordPress Codex - the_content()" href="http://codex.wordpress.org/Function_Reference/the_content" target="_blank">the_content()</a> you get everything you&#8217;d expect to. When you&#8217;re making a shortcode and need to return all of your data instead of just echo or print it, you need to use <a title="WordPress Codex - get_the_content()" href="http://codex.wordpress.org/Function_Reference/get_the_content" target="_blank">get_the_content()</a>. Normally this isn&#8217;t a problem, but if you&#8217;ve got plugins or other things filtering their data in using <a title="WordPress Codex - the_content() filter" href="http://codex.wordpress.org/Plugin_API/Filter_Reference/the_content" target="_blank">add_filter(&#8216;the_content&#8217;)</a>, then that data won&#8217;t be pulled in.</p>
<p>Looking back, I can see that the following important step is included in the bottom of the codex&#8217;s get_the_content page, but here is the magic code to get your plugin data included:</p>
<pre>apply_filters( 'the_content', get_the_content() );</pre>
<p>so my use looked something like this:</p>
<pre>$output .= apply_filters( 'the_content', get_the_content() );
return $output;</pre>
<p>with that, all of my fancy PodPress functionality was included.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jarrodpyper.com/blog/include-plugin-content-in-your-get_the_content-call/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Change WordPress Login Message &#8211; Filter It Out</title>
		<link>http://www.jarrodpyper.com/blog/change-wordpress-login-message-filter-it-out/</link>
		<comments>http://www.jarrodpyper.com/blog/change-wordpress-login-message-filter-it-out/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 15:08:06 +0000</pubDate>
		<dc:creator>jarrod</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Code Snippets]]></category>

		<guid isPermaLink="false">http://www.jarrodpyper.com/?p=244</guid>
		<description><![CDATA[http://www.jarrodpyper.com/blog/change-wordpress-login-message-filter-it-out/<div><a href="" title="Change WordPress Login Message &#8211; Filter It Out"></a></div>This is an add-on to my last post about customizing the login page. My client wanted to (very slightly) change the text a user sees on the Forgot Password page. It took me way too long to come across the login_message filter. here&#8217;s my function: function forgotpass_message() { $action = $_REQUEST['action']; if( $action == 'lostpassword' [...]]]></description>
	http://www.jarrodpyper.com/blog/change-wordpress-login-message-filter-it-out/			<content:encoded><![CDATA[<div><a href="" title="Change WordPress Login Message &#8211; Filter It Out"></a></div><p>This is an add-on to my last post about customizing the login page. My client wanted to (very slightly) change the text a user sees on the Forgot Password page.</p>
<p>It took me way too long to come across the <strong>login_message</strong> filter.</p>
<p>here&#8217;s my function:</p>
<pre>function forgotpass_message() {
 $action = $_REQUEST['action'];
 if( $action == 'lostpassword' ) {
 $message = '&lt;p class="message"&gt;Please enter your email address. Then check your email inbox for instructions to reset your password.&lt;/p&gt;';
 return $message;
 }
}
add_filter('login_message', 'forgotpass_message');</pre>
<p>The url on the forgot password page includes the query string &#8220;action=lostpassword&#8221; so that&#8217;s what I&#8217;m checking for with my $_REQUEST call. If we&#8217;re on the forgot password page, then make a new message and return it.</p>
<p>Some other possible values of the action query string (taken from wp-login.php):</p>
<ul>
<li>logout</li>
<li>retrievepassword</li>
<li>resetpass</li>
<li>rp</li>
<li>register</li>
<li>login</li>
</ul>
<p>I think &#8220;rp&#8221; is another form of reset password.</p>
<p>Happy WordPress login page customizing! Hopefully someone who is looking for this comes across it quicker than I did.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jarrodpyper.com/blog/change-wordpress-login-message-filter-it-out/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Changing WordPress Login page without a plugin &#8211; Hooks and Filters FTW</title>
		<link>http://www.jarrodpyper.com/blog/changing-wordpress-login-page-without-a-plugin-hooks-and-filters-ftw/</link>
		<comments>http://www.jarrodpyper.com/blog/changing-wordpress-login-page-without-a-plugin-hooks-and-filters-ftw/#comments</comments>
		<pubDate>Sat, 10 Mar 2012 21:18:26 +0000</pubDate>
		<dc:creator>jarrod</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Code Snippets]]></category>

		<guid isPermaLink="false">http://www.jarrodpyper.com/?p=237</guid>
		<description><![CDATA[http://www.jarrodpyper.com/blog/changing-wordpress-login-page-without-a-plugin-hooks-and-filters-ftw/<div><a href="" title="Changing WordPress Login page without a plugin &#8211; Hooks and Filters FTW"></a></div>So the plugin I wrote about last post didn&#8217;t handle everything like I thought it did. If a user entered their password incorrectly, they were brought straight to the default wp-login.php page with the WP logo staring them right in the face. Exactly what my client did not want. It turns out this was a [...]]]></description>
	http://www.jarrodpyper.com/blog/changing-wordpress-login-page-without-a-plugin-hooks-and-filters-ftw/			<content:encoded><![CDATA[<div><a href="" title="Changing WordPress Login page without a plugin &#8211; Hooks and Filters FTW"></a></div><p>So the plugin I wrote about last post didn&#8217;t handle everything like I thought it did. If a user entered their password incorrectly, they were brought straight to the default wp-login.php page with the WP logo staring them right in the face. Exactly what my client did not want. It turns out this was a conflict with other functions that I had running so I had to work around it.</p>
<p>After searching through many half-helpful articles on how to customize the WordPress login page without a plugin, I finally got my most helpful information straight from the wp-login.php file. Whodathunk eh?</p>
<pre>Hook: login_head
Use: add_action('login_head', 'yourfunctionname');</pre>
<p>This will hook you into the &lt;head&gt; tag of the login page. I used it to throw in some CSS to alter the login page. Only to change the button color and replace the WordPress logo image (it&#8217;s a background-image). So I used:</p>
<pre>function v_login_logo() {
 echo '';
}</pre>
<p>Great. But the logo is still linked to WordPress.org. For that, wp-login.php tells us there&#8217;s a filter for that:</p>
<pre>Filter: login_headerurl
Use: add_filter('login_headerurl', 'yourfunctionname');</pre>
<p>While you&#8217;re at that, you might as well change the title tag of the image so it isn&#8217;t wordpress.org by using:</p>
<pre>Filter: login_headertitle
Use: add_filter('login_headertitle', 'yourfunctionname');</pre>
<p>So using those two filters and one hook, I replaced the login logo image, image url, and image title attribute. You can change any other CSS you&#8217;d like using that hook too.</p>
<p>I learned a neat php trick from one of the articles I found (long forgotten which of the many) with a command called create_function. I used it with my filters like this:</p>
<pre>add_filter('login_headerurl', create_function(false, "return 'http://wwwmysiteurl.com';"));</pre>
<p>As you can see, it created my function within my filter call. Handy. I have no idea what the &#8220;false&#8221; is for at the beginning. Maybe someone else can tell me.</p>
<p>Happy login customizing. More and more lately I like to avoid plugins where I can and sharpen my skills interacting with WordPress on my own. Time consuming, but eventually I can make my own plugins. There&#8217;s value in always knowing what&#8217;s going on under the hood.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jarrodpyper.com/blog/changing-wordpress-login-page-without-a-plugin-hooks-and-filters-ftw/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plugin Review &#8211; Theme My Login</title>
		<link>http://www.jarrodpyper.com/blog/plugin-review-theme-my-login/</link>
		<comments>http://www.jarrodpyper.com/blog/plugin-review-theme-my-login/#comments</comments>
		<pubDate>Fri, 09 Mar 2012 15:23:25 +0000</pubDate>
		<dc:creator>jarrod</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Plugin Review]]></category>

		<guid isPermaLink="false">http://www.jarrodpyper.com/?p=234</guid>
		<description><![CDATA[http://www.jarrodpyper.com/blog/plugin-review-theme-my-login/<div><a href="" title="Plugin Review &#8211; Theme My Login"></a></div>Plugin can be found on the WP plugin repository here. This morning I found myself needing to quickly make the standard WP login page not look like the standard WP login page. Then I realized I also needed the same for the password recovery page and also to redirect the logout page away to the [...]]]></description>
	http://www.jarrodpyper.com/blog/plugin-review-theme-my-login/			<content:encoded><![CDATA[<div><a href="" title="Plugin Review &#8211; Theme My Login"></a></div><p>Plugin can be found on the WP plugin repository <a title="Theme My Login" href="http://wordpress.org/extend/plugins/theme-my-login/" target="_blank">here</a>.</p>
<p>This morning I found myself needing to quickly make the standard WP login page not look like the standard WP login page. Then I realized I also needed the same for the password recovery page and also to redirect the logout page away to the site homepage. The project I&#8217;m working on already had this plugin installed so I thought &#8220;why not?&#8221;</p>
<p>Now I know how to use</p>
<pre> wp_logout_url( home_url() );</pre>
<p>to send a user to the homepage on logout. That&#8217;s  all fine and dandy but doesn&#8217;t change the look of anything. I figured the Theme My Login plugin would let me change up the styling of the WP pages I needed, using a different logo and such. Nope. I think the plugin would more appropriately be called Move My Login Page to the Front End of My Site.</p>
<p>How it works: You add a &#8220;login&#8221; page and enter that page ID into the plugin settings. That page is now used for all your logging needs. You won&#8217;t even see the WP login page again unless you manually point your URL to /wp-login.php (I usually use /wp-admin).</p>
<p>My problems were solved faster than I could have hoped for. I no longer had to restyle the WP login with a new logo and look, my login fields were now on a page in my website and looked totally integrated.</p>
<p>The plugin also supports redirecting (based on user level!) for logging in and/or out. Custom emails (I assume for new users or password recovery), custom passwords, custom user links, security, themed profiles, and user moderation. I didn&#8217;t touch anything but the redirection.</p>
<p>Worked for me!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jarrodpyper.com/blog/plugin-review-theme-my-login/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Silence</title>
		<link>http://www.jarrodpyper.com/blog/silence/</link>
		<comments>http://www.jarrodpyper.com/blog/silence/#comments</comments>
		<pubDate>Fri, 09 Mar 2012 15:11:15 +0000</pubDate>
		<dc:creator>jarrod</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.jarrodpyper.com/?p=232</guid>
		<description><![CDATA[http://www.jarrodpyper.com/blog/silence/<div><a href="" title="Silence"></a></div>It sure doesn&#8217;t look great to have a &#8220;blog&#8221; section with two posts and no new ones for months and months huh? I think getting too ambitious about it is part of the problem, at least for me. Look for some short reviews on stuff I&#8217;m doing or have done, plugins I&#8217;m using or wish [...]]]></description>
	http://www.jarrodpyper.com/blog/silence/			<content:encoded><![CDATA[<div><a href="" title="Silence"></a></div><p>It sure doesn&#8217;t look great to have a &#8220;blog&#8221; section with two posts and no new ones for months and months huh?</p>
<p>I think getting too ambitious about it is part of the problem, at least for me.</p>
<p>Look for some short reviews on stuff I&#8217;m doing or have done, plugins I&#8217;m using or wish I&#8217;d avoided. That sort of thing. Let&#8217;s keep it brief and unambitious. I&#8217;ve gotta have time to build sites and play with by daughter.</p>
<p>-Jarrod</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jarrodpyper.com/blog/silence/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Jeff Miller</title>
		<link>http://www.jarrodpyper.com/portfolio/jeff-miller/</link>
		<comments>http://www.jarrodpyper.com/portfolio/jeff-miller/#comments</comments>
		<pubDate>Wed, 07 Mar 2012 02:38:19 +0000</pubDate>
		<dc:creator>jarrod</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://www.jarrodpyper.com/?p=227</guid>
		<description><![CDATA[http://www.jarrodpyper.com/portfolio/jeff-miller/<img src="http://www.jarrodpyper.com/wp-content/uploads/2012/03/jeffmiller-260x197-tc.jpg" width="260" height="197" class="post-image" alt="Jeff Miller" title="Jeff Miller" /><div><a href="" title="Jeff Miller"><img src="http://www.jarrodpyper.com/wp-content/uploads/2012/03/jeffmiller-260x197-tc.jpg" width="260" height="197" class="post-image" alt="Jeff Miller" title="Jeff Miller" /></a></div>]]></description>
	http://www.jarrodpyper.com/portfolio/jeff-miller/<img src="http://www.jarrodpyper.com/wp-content/uploads/2012/03/jeffmiller-260x197-tc.jpg" width="260" height="197" class="post-image" alt="Jeff Miller" title="Jeff Miller" />			<content:encoded><![CDATA[<div><a href="" title="Jeff Miller"><img src="http://www.jarrodpyper.com/wp-content/uploads/2012/03/jeffmiller-260x197-tc.jpg" width="260" height="197" class="post-image" alt="Jeff Miller" title="Jeff Miller" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.jarrodpyper.com/portfolio/jeff-miller/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
