<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>WP Smith</title>
	
	<link>http://wpsmith.net</link>
	<description>My Journey with WordPress &amp; Genesis</description>
	<lastBuildDate>Fri, 24 May 2013 00:40:32 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/WPSmith" /><feedburner:info uri="wpsmith" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>WPSmith</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>How to orderby include Argument for get_terms()</title>
		<link>http://feedproxy.google.com/~r/WPSmith/~3/q3vTAh_VNv4/</link>
		<comments>http://wpsmith.net/2013/wp/how-to-orderby-include-argument-for-get_terms/#comments</comments>
		<pubDate>Tue, 22 Jan 2013 11:00:34 +0000</pubDate>
		<dc:creator>Travis Smith</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://wpsmith.net/?p=20602</guid>
		<description><![CDATA[<p>WordPress 3.5 came out with an awesome feature of ordering by post__in (Codex). So when I got to my current issue, I noticed that I could not use the default orderby options (alphabetical title, ID, etc.), so the code used to create the post__in orderby can also be extended to be used for get_terms, which [...]</p><p>The post <a href="http://wpsmith.net/2013/wp/how-to-orderby-include-argument-for-get_terms/">How to orderby include Argument for get_terms()</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>WordPress 3.5 came out with an awesome feature of ordering by <code>post__in</code> (<a href="http://codex.wordpress.org/Version_3.5#General" title="WordPress 3.5 post__in orderby" target="_blank">Codex</a>). So when I got to my current issue, I noticed that I could not use the default orderby options (alphabetical title, ID, etc.), so the code used to create the <code>post__in orderby</code> can also be extended to be used for <code>get_terms</code>, which by default is not available in WordPress core. However, there is a great filter to enable this (see <a href="http://core.trac.wordpress.org/ticket/23261" title="WordPress Ticket include get_terms orderby">WordPress ticket</a>).</p>
<h3>Call get_terms()</h3>
<p>So, first, I need to setup the function. In this scenario, I am using WooCommerce, but it could work with any theme, or ecommerce solution. For more information on <a href="http://codex.wordpress.org/Function_Reference/get_terms" title="get_terms WordPress Codex" target="_blank">get_terms()</a> please see the WordPress Codex.<br />
<script src="https://gist.github.com/4592102.js?file=wps_homepage_categories.php"></script><noscript><pre><code class="language-php php">&lt;?php

/**
 * Output the homepage categories HTML Markup
 *
 * @uses wps_category_image() Outputs image HTML Markup
 */
function wps_homepage_categories() {
  
	$args = array(
		'orderby'       =&gt; 'include', 
		'order'         =&gt; 'ASC',
		'hide_empty'    =&gt; false, 
		'include'       =&gt; array( 28 /* Appearal */, 27 /* Accessories */, 30 /* Outerwear */, 29 /* Hiking */, 22 /* Grooming */, ),
		'fields'        =&gt; 'all', 
		'pad_counts'    =&gt; false, 
		'd2c_home'      =&gt; true, //optional
	); 
	$product_cats = get_terms( 'product_cat', $args );
	
	foreach ( $product_cats as $cat ) {
		wps_category_image( $cat-&gt;term_id, $size );
	}
}</code></pre></noscript></p>
<p>In this code, I use <code>wps_category_image()</code> which outputs the WooCommerce category image.<br />
<script src="https://gist.github.com/4592102.js?file=wps_category_image.php"></script><noscript><pre><code class="language-php php">&lt;?php

/**
 * Outputs HTML markup for category image for WooCommerce.
 *
 * @param  int    $cat_id  Category ID.
 * @param  string $size    Image size.
 * @param  array  $attr    Image attributes.
 * @return string $orderby Modified orderby SQL string.
 */
function wps_category_image( $cat_id, $size, $attr = array() ) {
  // get the thumbnail id user the term_id
  $thumbnail_id = get_woocommerce_term_meta( $cat_id, 'thumbnail_id', true ); 
  
  // get the image URL
  $image = wp_get_attachment_url( $thumbnail_id ); 
  
  // print the IMG HTML
  echo wp_get_attachment_image( $thumbnail_id, $size, false, $attr );

}</code></pre></noscript></p>
<h3>Filter <code>get_terms_orderby</code></h3>
<p>Next, is the really cool part. You want to filter the get_terms_orderby SQL.<br />
<script src="https://gist.github.com/4592102.js?file=wps_get_terms_orderby.php"></script><noscript><pre><code class="language-php php">&lt;?php

add_filter( 'get_terms_orderby', 'wps_get_terms_orderby', 10, 2 );
/**
 * Modifies the get_terms_orderby argument if orderby == include
 *
 * @param  string $orderby Default orderby SQL string.
 * @param  array  $args    get_terms( $taxonomy, $args ) arg.
 * @return string $orderby Modified orderby SQL string.
 */
function wps_get_terms_orderby( $orderby, $args ) {
  if ( isset( $args['orderby'] ) &amp;&amp; 'include' == $args['orderby'] ) {
		$include = implode(',', array_map( 'absint', $args['include'] ));
		$orderby = &quot;FIELD( t.term_id, $include )&quot;;
	}
	return $orderby;
}</code></pre></noscript></p>
<p>First, you need to check to see if <em>include</em> is the preferred <em>orderby</em> argument.</p>
<p>Second, you want to sanitize it with <a href="http://codex.wordpress.org/Function_Reference/absint" title="absint WordPress Codex" target="_blank"><code>absint()</code></a>.</p>
<p>Third, set the order to the FIELD include (see <a href="http://jonahellison.com/mysql-order-by-field-group_concat" title="MySQL Tips and Tricks: Using ORDER BY FIELD and GROUP_CONCAT()" target="_blank">here</a> for more information).</p>
<p>The post <a href="http://wpsmith.net/2013/wp/how-to-orderby-include-argument-for-get_terms/">How to orderby include Argument for get_terms()</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p><img src="http://feeds.feedburner.com/~r/WPSmith/~4/q3vTAh_VNv4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpsmith.net/2013/wp/how-to-orderby-include-argument-for-get_terms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wpsmith.net/2013/wp/how-to-orderby-include-argument-for-get_terms/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=how-to-orderby-include-argument-for-get_terms</feedburner:origLink></item>
		<item>
		<title>Add a Nagging Fixed Top Menu to Your Genesis Site</title>
		<link>http://feedproxy.google.com/~r/WPSmith/~3/AklnjPG49DU/</link>
		<comments>http://wpsmith.net/2013/genesis/add-a-nagging-fixed-top-menu-to-your-genesis-site/#comments</comments>
		<pubDate>Mon, 21 Jan 2013 11:00:29 +0000</pubDate>
		<dc:creator>Travis Smith</dc:creator>
				<category><![CDATA[Genesis]]></category>

		<guid isPermaLink="false">http://wpsmith.net/?p=20601</guid>
		<description><![CDATA[<p>Recently, someone asked me to assist them with their nagging menu. Simply they wanted a menu that became fixed at the top after the user scrolled past the menu. In their case, they had a primary navigation menu at the top and then a secondary menu below the slider. So when the user scrolled past [...]</p><p>The post <a href="http://wpsmith.net/2013/genesis/add-a-nagging-fixed-top-menu-to-your-genesis-site/">Add a Nagging Fixed Top Menu to Your Genesis Site</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Recently, someone asked me to assist them with their nagging menu. Simply they wanted a menu that became fixed at the top after the user scrolled past the menu. In their case, they had a primary navigation menu at the top and then a secondary menu below the slider. So when the user scrolled past the slider to the store, the secondary menu would be fixed at the top as the user scrolled through the various store items. So I pointed them to an <a href="http://www.1stwebdesigner.com/tutorials/create-stay-on-top-menu-css3-jquery/" title="How to Create a Stay-On-Top Menu with CSS3 and jQuery" target="_blank">online tutorial</a> by 1stwebdesigner.com (<a href="http://www.1stwebdesigner.com/wp-content/uploads/2010/06/nagging-menu-with-css3-and-jquery/index.html" title="How to Create a Stay-On-Top Menu with CSS3 and jQuery" target="_blank">with example</a>) that would help them get about 75% there. In some WordPress themes, this would get you all the way, but with Genesis, the JavaScript needed some massaging to be 100% correct. (NOTE: If you are reading this post on the <a href="http://wpsmith.net/?p=20601" title="Add a Nagging Fixed Top Menu to Your Genesis Site" target="_blank">single page</a>, you can see this example on this page.)</p>
<h3>The Script</h3>
<p>First, let&#8217;s review the script needed. I modified the script from 1stwebdesigner.com for Genesis themes.<br />
<script src="https://gist.github.com/4586395.js?file=nagging-menu.js"></script><noscript><pre><code class="language-javascript javascript">jQuery(document).ready(function($) {
  &quot;use strict&quot;;
  
  // Change #nav to #subnav for Genesis default Secondary Menu
  var menu = $('#nav').find('.menu'),
		pos = menu.offset();
		
		// Add Default class
		menu.addClass('default');
		$(window).scroll(function(){
			if($(this).scrollTop() &gt; pos.top+menu.height() &amp;&amp; menu.hasClass('default')){
				menu.fadeOut('fast', function(){
					$(this).removeClass('default').addClass('fixed').fadeIn('fast');
				});
			} else if($(this).scrollTop() &lt;= pos.top &amp;&amp; menu.hasClass('fixed')){
				menu.fadeOut('fast', function(){
					$(this).removeClass('fixed').addClass('default').fadeIn('fast');
				});
			}
		});

});</code></pre></noscript><br />
This script will make the primary menu appear at the top, but if you&#8217;d like the secondary menu to appear, then change <code>#nav</code> to <code>#subnav</code>. The rest is basic copy and paste. However, I recommend making two files: nagging-menu.js and nagging-menu.min.js.</p>
<script src="https://gist.github.com/4586395.js?file=nagging-menu.min.js"></script><noscript><pre><code class="language-javascript javascript">jQuery(document).ready(function(e){&quot;use strict&quot;;var t=e(&quot;#nav&quot;).find(&quot;.menu&quot;),n=t.offset();t.addClass(&quot;default&quot;);e(window).scroll(function(){if(e(this).scrollTop()&gt;n.top+t.height()&amp;&amp;t.hasClass(&quot;default&quot;)){t.fadeOut(&quot;fast&quot;,function(){e(this).removeClass(&quot;default&quot;).addClass(&quot;fixed&quot;).fadeIn(&quot;fast&quot;)})}else if(e(this).scrollTop()&lt;=n.top&amp;&amp;t.hasClass(&quot;fixed&quot;)){t.fadeOut(&quot;fast&quot;,function(){e(this).removeClass(&quot;fixed&quot;).addClass(&quot;default&quot;).fadeIn(&quot;fast&quot;)})}})})</code></pre></noscript>
<p>Now, I place these two files in my js folder which is found beside my images folder in my child theme. Some people can place this within a lib (for library) or inc (for includes) folder within their child theme. Whatever you prefer, but if you change the location, be sure to change the code in <em>functions.php</em> (below) to match your location.</p>
<h3>Enqueuing Script</h3>
<p>Next, you want WordPress to enqueue the script.<br />
<script src="https://gist.github.com/4586395.js?file=functions-enqueue.php"></script><noscript><pre><code class="language-php php">&lt;?php

add_action( 'init', 'wps_register_nagging_script' );
/**
 * Register Nagging script
 * 
 * @uses CHILD_THEME_VERSION set this via wp_get_theme()-&gt;Version
 * @link https://gist.github.com/4477270 Sets Child Theme Constants via wp_get_theme()
 * @link https://gist.github.com/4083811 For jQuery alternative to be placed in footer
 */
function wps_nagging_script() {
  $suffix = ( WP_DEBUG || SCRIPT_DEBUG ) ? '.js' : '.min.js';
  wp_enqueue_script(
    'nagging-menu',
    get_stylesheet_directory_uri() . '/js/nagging-menu' . $suffix,
    array( 'jquery' ),
    CHILD_THEME_VERSION, // I set this via wp_get_theme()-&gt;Version, @link https://gist.github.com/4477270 
    true 
  );
} 
</code></pre></noscript><br />
In this function, I have a tertiary statement determining the suffix. For those of you who don&#8217;t know what that is, it is a shortcut for an if-then block. For example, instead of this:</p>
<pre class="brush: php; title: ; notranslate">
if ( WP_DEBUG || SCRIPT_DEBUG )
    $suffix = '.js';
else
    $suffix = '.min.js';
</pre>
<p>We simply can write:</p>
<pre class="brush: php; title: ; notranslate">
$suffix = ( WP_DEBUG || SCRIPT_DEBUG ) ? '.js' : '.min.js';
</pre>
<p>This reads: &#8220;If WP_DEBUG or SCRIPT_DEBUG is true, then assign suffix variable to &#8216;.js&#8217; else assign the suffix variable to &#8216;.min.js&#8217;.&#8221; So what then are <a href="http://codex.wordpress.org/WP_DEBUG" title="WP_DEBUG" target="_blank">WP_DEBUG</a> or <a href="http://codex.wordpress.org/Debugging_in_WordPress#SCRIPT_DEBUG" title="SCRIPT_DEBUG" target="_blank">SCRIPT_DEBUG</a>? These are WordPress constants for debugging, which all developers regardless of skill should have on while developing a site.</p>
<p>So, my <em>functions-enqueue.php</em> code enqueues the appropriate script based on whether WordPress has been optimized for output or for debugging (nothing is worse than trying to access a JavaScript file when debugging and the JS file being minimized).</p>
<p>However, this function enqueues this script <em>globally</em> on every page. Some, however, may want to not have the script on every page, so then you would register the script and enqueue it conditionally, as below.<br />
<script src="https://gist.github.com/4586395.js?file=functions-register.php"></script><noscript><pre><code class="language-php php">&lt;?php

add_action( 'init', 'wps_register_nagging_script' );
/**
 * Register Nagging script
 * 
 * @uses CHILD_THEME_VERSION set this via wp_get_theme()-&gt;Version
 * @link https://gist.github.com/4477270 Sets Child Theme Constants via wp_get_theme()
 * @link https://gist.github.com/4083811 For jQuery alternative to be placed in footer
 */
function wps_register_nagging_script() {
  $suffix = ( WP_DEBUG || SCRIPT_DEBUG ) ? '.js' : '.min.js';
  wp_register_script(
    'nagging-menu',
    get_stylesheet_directory_uri() . '/js/nagging-menu' . $suffix,
    array( 'jquery' ),
    CHILD_THEME_VERSION, // I set this via wp_get_theme()-&gt;Version, @link https://gist.github.com/4477270 
    true 
  );
} 

add_action( 'wp_enqueue_scripts', 'wps_nagging_script' );
/**
 * Enqueue Nagging script if on home/archive page
 */
function wps_nagging_script() {
  if ( is_home() || is_front_page() || is_archive() || is_tax() )
    wp_enqueue_script( 'nagging-menu' );
}</code></pre></noscript></p>
<h3>The Style</h3>
<p>Minimally, you need this CSS to make this menu happen (though you don&#8217;t really need the background possibly or the box-shadow properties).<br />
<script src="https://gist.github.com/4586395.js?file=style.css"></script><noscript><pre><code class="language-css css">#nav .fixed,
#subnav .fixed,
.fixed {
	background: rgb(0,0,0); /* Fallback */
	background: rgba(0,0,0,0.97); /* All modern browsers */
	filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#00000000'); /* IE */
	-webkit-box-shadow: 0 0 40px #222;
	-moz-box-shadow: 0 0 40px #222;
	box-shadow: 0 0 40px #222;
	left: 0;
	top: 0;
	position: fixed;
	width: 100%;
}

#nav .default,
#subnav .default,
.default {
}</code></pre></noscript></p>
<p>You can do a whole lot here, just as 1stwebdesigner.com does, to fancy up the menu as it sits on top.</p>
<p>The post <a href="http://wpsmith.net/2013/genesis/add-a-nagging-fixed-top-menu-to-your-genesis-site/">Add a Nagging Fixed Top Menu to Your Genesis Site</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p><img src="http://feeds.feedburner.com/~r/WPSmith/~4/AklnjPG49DU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpsmith.net/2013/genesis/add-a-nagging-fixed-top-menu-to-your-genesis-site/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://wpsmith.net/2013/genesis/add-a-nagging-fixed-top-menu-to-your-genesis-site/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=add-a-nagging-fixed-top-menu-to-your-genesis-site</feedburner:origLink></item>
		<item>
		<title>The Role of Online Learning for Churches with WordPress</title>
		<link>http://feedproxy.google.com/~r/WPSmith/~3/9oJ6PYAxIRo/</link>
		<comments>http://wpsmith.net/2013/church/the-role-of-online-learning-for-churches-with-wordpress/#comments</comments>
		<pubDate>Thu, 10 Jan 2013 20:08:46 +0000</pubDate>
		<dc:creator>Travis Smith</dc:creator>
				<category><![CDATA[Church]]></category>

		<guid isPermaLink="false">http://wpsmith.net/?p=20495</guid>
		<description><![CDATA[<p>In my experience, churches have failed dismally in the area of providing learning opportunities to their members. Please don&#8217;t get me wrong here&#8230;many churches have great learning opportunities, in person, one, maybe two, days a week. Typically, however, as it pertains to online opportunities, churches typically only provide the Sunday Morning message as a podcast, [...]</p><p>The post <a href="http://wpsmith.net/2013/church/the-role-of-online-learning-for-churches-with-wordpress/">The Role of Online Learning for Churches with WordPress</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://wpsmith.net/wp-content/uploads/2013/01/church-shopper.jpg"><img src="http://wpsmith.net/wp-content/uploads/2013/01/church-shopper.jpg" alt="Online Church Opportunities" width="283" height="424" class="alignleft size-full wp-image-20496" /></a>In my experience, churches have failed dismally in the area of providing learning opportunities to their members. Please don&#8217;t get me wrong here&#8230;many churches have great learning opportunities, <strong>in person</strong>, one, maybe two, days a week. Typically, however, as it pertains to online opportunities, churches typically only provide the Sunday Morning message as a podcast, and that&#8217;s it! It is true that some churches have more elaborate children ministries&#8217; resources for parents and children. Yet, for the most part, opportunities for teens are typically centered around social media (if at all) and for adults, abismally non-existent. Education pastors design and develop curricula, possibly even publish the curriculum. Rarely, however, do churches provide online member areas to provide more than just the sermon podcast. Churches rarely integrate the sermon with supportive learning exercises during the week.</p>
<p>Yes, there is power in the preaching of the Word of God. Recently, my own pastor of a larger church in Atlanta admitted from the pulpit that he doubts that any of his sermons will be remembered. Yet, he believes that the sermons in totality over the course of a year or more will have an impact. What if his sermons can have even more of an impact through online supporting materials? Journal questions? Discussion boards? Supportive online inductive Bible Studies? Etc. What if?<br />
<a href="http://wpsmith.net/wp-content/uploads/2013/01/Podcast-580x326.jpg"><img src="http://wpsmith.net/wp-content/uploads/2013/01/Podcast-580x326.jpg" alt="Church Podcast" width="580" height="326" class="alignright size-full wp-image-20497" /></a><br />
Almost any full-time Evangelist would admit that their job is &#8220;easy.&#8221; It&#8217;s easy to go in and preach and leave. They, however, would also admit that the difficult part of their job is knowing whether the church will effectively follow-up with the fruit of their labor. Many times, people fall through the cracks. So I am suggesting that online activities and opportunities, such as &#8220;I&#8217;m a new believer. Now what?&#8221; kind of courses. Just as new hire orientation greatly helps organizations orient new employees to their culture, the church can do something very similar.</p>
<p>Recently, I was contacted by one church who wanted to do a series where they gave the sermon, provided extra videos for Monday through Wednesday with follow-up discussion questions for their small groups Tuesday through Saturday. It&#8217;s the first time they&#8217;ve done this! What a great idea! One very similar model would be Pantego Bible Church when Randy Frazee as described in <em>The Connecting Church</em>.<a href="http://wpsmith.net/wp-content/uploads/2013/01/the-connecting-church.jpg"><img src="http://wpsmith.net/wp-content/uploads/2013/01/the-connecting-church.jpg" alt="The Connecting Church by Randy Frazee" width="315" height="480" class="alignleft size-full wp-image-20498" /></a> They integrate the sermon with their community group curricula so that the big idea or the main proposition is studied through the week at different levels/depth, embodied, and thoroughly learned. So instead of the believer being bombarded with all sorts of knowledge on Sunday AM, Sunday PM, Wednesday PM, and any other day. It&#8217;s tragic that though churches offer so much learning opportunities, the body of Christ in America is becoming more and more biblically illiterate and unaware (from Dallas Theological Seminary survey but supported by Barna <a href="http://www.barna.org/barna-update/article/5-barna-update/53-religious-beliefs-vary-widely-by-denomination" title="Biblical Illiteracy in America" target="_blank">here</a> and <a href="http://www.barna.org/transformation-articles/152-half-of-americans-say-faith-has-qgreatly-transformedq-their-life" title="Biblical Illiteracy in America" target="_blank">here</a>).</p>
<p>Now, if churches would provide online modules to supplement the sermons, life change can be reinforced during the week thus making a deeper impact and a deeper change. Furthermore, besides further formal (courses and workshops) or informal learnings (such as journal/reflection questions, more videos, other podcasts or presentations, blog entries, etc.), if churches provide discussion boards/forums (via <a href="http://bbpress.org/" title="bbPress" target="_blank">bbPress</a>) or various social online situations (<a href="http://buddypress.org/" title="BuddyPress" target="_blank">BuddyPress</a>), immense growth can happen, maybe even have exponential, grassroots growth. Not only can spiritual growth take place, if an authentic and dynamic community can be encouraged and managed, then the church becomes even more connected&#8230;more like the church. However, in larger communities and cities where members are greatly dispersed throughout the city (and with traffic as bad as it is in Atlanta!!), having an online arena would be a great place to connect during the week. Instead, churches depend on email newsletters (e.g., MailChimp &amp; Constant Contact), and well&#8230;I have no idea what else.</p>
<p>Recently, a friend of mine developed a site for pastors to network about small groups, <a href="http://smallgroupnetwork.com" title="Small Group Network" target="_blank">Small Group Network</a> utilizing BuddyPress and bbPress. From their site,</p>
<blockquote><p>Founded by Steve Gladen, the Small Group Network is a free world-wide network for leaders of small group ministry. Our goal is to provide these leaders with relevant information and resources while connecting them to each other so that they might build relationships and encourage one another in creating healthy small group ministries.</p></blockquote>
<p>However, I believe this is completely doable with churches (Now the caveat with churches will be to determine the legal ramifications, forum moderation, etc. for extensions like BuddyPress and bbPress). </p>
<p>Many churches have classes or workshops for new members and new believers. However, they are often at the worst times. For example, my wife and I have been trying to become members of a church in Atlanta, but due to our schedule, due to sickness and other random circumstances (sometimes our fault even), it has been over a year since we began &#8220;trying&#8221; to become members. However, membership class is only offered either once a month or once a quarter. What if the church provided some online modules (via a Learning Management System, or also known as a LMS) and then only one Sunday morning discussion and conversation to finalize the memberships. This could be slated for one of the Sunday morning hours rotating elders and pastoral staff as needed/desired. In this manner, instead of a bottlenecked entry point, becoming members is entirely dependent on the member-to-be.</p>
<p>This can be done in WordPress alongside a church&#8217;s WordPress website. If the church wants to accomplish a course-like feel (like Moodle) then consider what Chris Lema just wrote about in his recent <a href="http://chrislema.com/e-learning-on-wordpress-made-easy/">elearning post</a>. The other approach would be <a href="http://www.learndash.com/">Learn Dash</a>, which I haven&#8217;t tried or tested. WooThemes will be releasing <a href="http://www.woothemes.com/2012/11/product-update-sensei/">Sensei</a> this month, which I am excited to see. WooThemes was nice enough to give me the plugin to test today, so I will be writing about it soon!</p>
<p>Yes, I can hear it now&#8230;&#8221;We like to have the interaction.&#8221; Or, &#8220;We like to see their faces.&#8221; Or, &#8220;As the church, we should be rubbing shoulders with one another.&#8221; Yes, very true. But how much interaction really takes place at medium to larger churches? In all honesty, not much. I am not negating meeting face-to-face and the importance of gathering together as believers. However, I am encouraging churches to optimize the face-to-face meeting times. Most of the workshops tend to be question-less anyways even though most of them provide opportunities for members-to-be to ask questions. I&#8217;ve sat through these seminars, and I find them extremely boring and hope and pray no one asks any questions. For the average member-to-be, I imagine that people fear asking questions, or the questions have percolated yet, or spouses and families haven&#8217;t had a chance to discuss what they&#8217;ve heard and aren&#8217;t able to come up with questions in less than 5 minutes. Instead, if online learnings (and every church has a base curriculum that needs to be <a href="http://travisthoughts.com/learning/push-v-pull-learning/" title="Push v. Pull Content" target="_blank">pushed</a> to the potential member) to provide a base for discussion, then membership classes can take meaning.</p>
<p>The post <a href="http://wpsmith.net/2013/church/the-role-of-online-learning-for-churches-with-wordpress/">The Role of Online Learning for Churches with WordPress</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p><img src="http://feeds.feedburner.com/~r/WPSmith/~4/9oJ6PYAxIRo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpsmith.net/2013/church/the-role-of-online-learning-for-churches-with-wordpress/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://wpsmith.net/2013/church/the-role-of-online-learning-for-churches-with-wordpress/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=the-role-of-online-learning-for-churches-with-wordpress</feedburner:origLink></item>
		<item>
		<title>How to Add a Genesis Top Navigation System</title>
		<link>http://feedproxy.google.com/~r/WPSmith/~3/XAEeXseMujs/</link>
		<comments>http://wpsmith.net/2013/genesis/how-to-add-a-genesis-top-navigation-system/#comments</comments>
		<pubDate>Wed, 09 Jan 2013 19:43:49 +0000</pubDate>
		<dc:creator>Travis Smith</dc:creator>
				<category><![CDATA[Genesis]]></category>

		<guid isPermaLink="false">http://wpsmith.net/?p=20493</guid>
		<description><![CDATA[<p>Adding a top navigationn menu to a Genesis child theme is quite easy. There are a couple of approaches. First, one can simply move the primary navigation to the top. Howevever, if you are already using the primary navigation, this may not work for you and a different approach may be necessary. The approach depends [...]</p><p>The post <a href="http://wpsmith.net/2013/genesis/how-to-add-a-genesis-top-navigation-system/">How to Add a Genesis Top Navigation System</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Adding a top navigationn menu to a Genesis child theme is quite easy. There are a couple of approaches. First, one can simply move the primary navigation to the top.<br />
<script src="https://gist.github.com/4496105.js?file=reposition_primary.php"></script><noscript><pre><code class="language-php php">&lt;?php

/** Reposition the primary navigation */
remove_action( 'genesis_after_header', 'genesis_do_nav' );
add_action( 'genesis_before', 'genesis_do_nav' );</code></pre></noscript></p>
<p>Howevever, if you are already using the primary navigation, this may not work for you and a different approach may be necessary.</p>
<p>The approach depends on what menus you are currently using (e.g., using both primary and secondary or just primary with secondary not registered, etc). You would need to first, register the menu and second, then, output the menu.</p>
<h3>Register the Menu</h3>
<p>First locate something like the following in your functions.php file.<br />
</p>
<p>If you don&#8217;t then, you have the default Genesis setup. This is the same as having the following in your <em>functions.php</em> file.<br />
<script src="https://gist.github.com/4496105.js?file=genesis-menus-default.php"></script><noscript><pre><code class="language-php php">&lt;?php

add_theme_support(
  'genesis-menus', 
	array(
		'primary'   =&gt; __( 'Primary Navigation Menu', 'child-domain' ) 
		'secondary' =&gt; __( 'Secondary Navigation Menu', 'child-domain' ) 
	)
);</code></pre></noscript></p>
<p>So you have two options:</p>
<ol>
<li>If not using the secondary navigation, you can use secondary navigation as the top menu</li>
<li>Create a new top menu navigation system</li>
</ol>
<h4>Use Secondary Navigation as Top Menu</h4>
<script src="https://gist.github.com/4496105.js?file=reposition_secondary.php"></script><noscript><pre><code class="language-php php">&lt;?php

/** Reposition the secondary navigation */
remove_action( 'genesis_after_header', 'genesis_do_subnav' );
add_action( 'genesis_before', 'genesis_do_subnav' );</code></pre></noscript>
<h4>Create Top Navigation</h4>
<p>To create a new navigation system, you need to do the following in your <em>functions.php</em>:<br />
<script src="https://gist.github.com/4496105.js?file=genesis-menus-top.php"></script><noscript><pre><code class="language-php php">&lt;?php

add_theme_support(
  'genesis-menus', 
	array(
		'primary'   =&gt; __( 'Primary Navigation Menu', 'child-domain' ),
		'secondary' =&gt; __( 'Secondary Navigation Menu', 'child-domain' ), 
		'top'       =&gt; __( 'Top Navigation Menu', 'child-domain' ), 
	)
);</code></pre></noscript></p>
<p>This will add a menu system of Top that you can find in Appearance > Menus. If you just want primary and top, remove the secondary menu from the middle.<br />
<script src="https://gist.github.com/4496105.js?file=genesis-menus-top-2.php"></script><noscript><pre><code class="language-php php">&lt;?php
 
add_theme_support(
  'genesis-menus', 
  array(
		'primary'   =&gt; __( 'Primary Navigation Menu', 'child-domain' ), 
		'top'       =&gt; __( 'Top Navigation Menu', 'child-domain' ), 
	)
);</code></pre></noscript></p>
<h3>Output the Menu</h3>
<p>Finally, you will need to output the menu.<br />
<script src="https://gist.github.com/4496105.js?file=wps_do_top_nav.php"></script><noscript><pre><code class="language-php php">&lt;?php

add_action( 'genesis_before', 'wps_do_top_nav' );
/**
 * Output Top Navigation
 */
function wps_do_top_nav() {
  /** Do nothing if menu not supported */
	if ( ! genesis_nav_menu_supported( 'top' ) )
		return;

	/** If menu is assigned to theme location, output */
	if ( has_nav_menu( 'top' ) ) {
		$args = array(
			'theme_location' =&gt; 'top',
			'container'      =&gt; '',
			'menu_class'     =&gt; genesis_get_option( 'nav_superfish' ) ? 'menu genesis-nav-menu menu-top superfish' : 'menu genesis-nav-menu menu-top',
			'echo'           =&gt; 0,
		);

		$nav = wp_nav_menu( $args );

		/** Wrap nav menu with div and .wrap div if applied to #nav */
		$nav_output = sprintf( '&lt;div id=&quot;top-nav&quot;&gt;%2$s%1$s%3$s&lt;/div&gt;', $nav, genesis_structural_wrap( 'nav', 'open', 0 ), genesis_structural_wrap( 'nav', 'close', 0 ) );

		echo $nav_output;
	}
}</code></pre></noscript><br />
This will output your top navigation the same as you output your primary navigation with all references to <code>nav</code> changed to <code>top-nav</code>.</p>
<p>The post <a href="http://wpsmith.net/2013/genesis/how-to-add-a-genesis-top-navigation-system/">How to Add a Genesis Top Navigation System</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p><img src="http://feeds.feedburner.com/~r/WPSmith/~4/XAEeXseMujs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpsmith.net/2013/genesis/how-to-add-a-genesis-top-navigation-system/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://wpsmith.net/2013/genesis/how-to-add-a-genesis-top-navigation-system/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=how-to-add-a-genesis-top-navigation-system</feedburner:origLink></item>
		<item>
		<title>Genesis Grid Loop in Genesis 1.9</title>
		<link>http://feedproxy.google.com/~r/WPSmith/~3/Za5TtxBmD8k/</link>
		<comments>http://wpsmith.net/2013/genesis/genesis-grid-loop-in-genesis-1-9/#comments</comments>
		<pubDate>Wed, 09 Jan 2013 01:17:54 +0000</pubDate>
		<dc:creator>Travis Smith</dc:creator>
				<category><![CDATA[Genesis]]></category>
		<category><![CDATA[Genesis Grid Loop]]></category>

		<guid isPermaLink="false">http://wpsmith.net/?p=20492</guid>
		<description><![CDATA[<p>Some people may be experiencing some issues with the Genesis Grid Loop in Genesis 1.9 (and rightly so). However, with Genesis 1.9, this will no longer work. Instead you must modify the query as you should via pre_get_posts hook. Bill Erickson has a great tutorial on how to do customize the WordPress Query, which I [...]</p><p>The post <a href="http://wpsmith.net/2013/genesis/genesis-grid-loop-in-genesis-1-9/">Genesis Grid Loop in Genesis 1.9</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Some people may be experiencing some issues with the Genesis Grid Loop in Genesis 1.9 (and rightly so).</p>
<pre class="brush: php; title: ; notranslate">
if ( function_exists( 'genesis_grid_loop' ) ) {
	genesis_grid_loop(
		array(
			'features'              =&gt; 0,
			'feature_image_size'    =&gt; 0,
			'feature_image_class'   =&gt; 'alignright post-image',
			'feature_content_limit' =&gt; 0,
			'grid_image_size'       =&gt; 'thumbnail',
			'grid_image_class'      =&gt; 'alignleft',
			'grid_content_limit'    =&gt; 250,
			'more'                  =&gt; __( '[Read more...]', 'child-domain' ),
			'posts_per_page'        =&gt; 25,
			/** Remove categories from loop */
			'category__not_in'      =&gt; array( 1, 2, 3, )
		) 
	);
} else {
	genesis_standard_loop();
}
</pre>
<p>However, with Genesis 1.9, this will no longer work. Instead you must modify the query as you should via <code>pre_get_posts</code> hook. Bill Erickson has a <a href="http://www.billerickson.net/customize-the-wordpress-query/" title="Customize the WordPress Query" target="_blank">great tutorial</a> on how to do customize the WordPress Query, which I will also re-iterate here.</p>
<h3>Custom Grid Loop Conditional</h3>
<p>First, I love the Grid Loop setup that Gary and Bill did <a href="http://code.garyjones.co.uk/genesis-grid-loop-advanced/" title="Genesis Grid Loop Advanced" target="_blank">here</a>. However, both Gary and Bill admit that there are other better options than using the genesis_grid_loop() such as Bill&#8217;s <a href="http://www.billerickson.net/a-better-and-easier-grid-loop/" title="Better, Easier Grid Loop" target="_blank">Better, Easier Grid Loop</a>.</p>
<p>However, some sites are just not worth re-doing. So in the meantime a fix is necessary. So here it is. Personally, I would use the function <code>child_is_doing_grid_loop()</code> from the Advanced Grid Loop. This will be the function where you declare all the places that you want the Grid Loop to appear using the <a href="http://codex.wordpress.org/Conditional_Tags" title="WordPress Conditional Tags" target="_blank">WordPress Conditionals</a>. This will keep your code organized.<br />
<script src="https://gist.github.com/4489534.js?file=wps_is_doing_grid_loop.php"></script><noscript><pre><code class="language-php php">&lt;?php

/**
 * Possibly amend the loop.
 * 
 * Specify the conditions under which the grid loop should be used.
 *
 * @author Bill Erickson
 * @author Gary Jones
 * @author Travis Smith
 * @link   http://code.garyjones.co.uk/genesis-grid-loop-advanced/
 * @link   http://wpsmith.net/2013/genesis/genesis-grid-loop-in-genesis-1-9/
 *
 * @return boolean Return true of doing the grid loop, false if not. 
 */
function wps_is_doing_grid_loop() {
 
  // Amend this conditional to pick where this grid looping occurs.
	// This says to use the grid loop everywhere except single posts,
	// single pages and single attachments.
	return ( ! is_singular() );
 
}</code></pre></noscript></p>
<h3>Modify the WordPress Query Correctly</h3>
<p>Then you need to modify the WordPress Query via <code>pre_get_posts</code> hook. Here&#8217;s how you can modify the query to exclude a category.<br />
<script src="https://gist.github.com/4489534.js?file=wps_exclude_cat_in_grid.php"></script><noscript><pre><code class="language-php php">&lt;?php
 
add_action( 'pre_get_posts', 'wps_exclude_cat_in_grid' );
/**
 * Exclude Category from Grid
 * 
 * @author Bill Erickson
 * @author Travis Smith
 * @link http://www.billerickson.net/customize-the-wordpress-query/
 * @link http://wpsmith.net/2013/genesis/genesis-grid-loop-in-genesis-1-9/
 * @param object $query WP Query data
 *
 */
function wps_exclude_cat_in_grid( $query ) {
  
	if( $query-&gt;is_main_query() &amp;&amp; wps_is_doing_grid_loop() ) {
		$query-&gt;set( 'cat', '-1,-2' );
	}
 
}</code></pre></noscript></p>
<p>Here&#8217;s how you can modify the query to limit the query to a category.<br />
<script src="https://gist.github.com/4489534.js?file=wps_include_cat_in_grid.php"></script><noscript><pre><code class="language-php php">&lt;?php
 
add_action( 'pre_get_posts', 'wps_include_cat_in_grid' );
/**
 * Limit Query to one Category
 * 
 * @author Bill Erickson
 * @author Travis Smith
 * @link http://www.billerickson.net/customize-the-wordpress-query/
 * @link http://wpsmith.net/2013/genesis/genesis-grid-loop-in-genesis-1-9/
 * @param object $query WP Query data
 *
 */
function wps_include_cat_in_grid( $query ) {
  
  if( $query-&gt;is_main_query() &amp;&amp; wps_is_doing_grid_loop() ) {
		$query-&gt;set( 'cat', '4' );
	}
 
}</code></pre></noscript></p>
<p>Here&#8217;s how you can modify the query to change the posts_per_page.<br />
<script src="https://gist.github.com/4489534.js?file=wps_change_posts_per_page_in_grid.php"></script><noscript><pre><code class="language-php php">&lt;?php
 
add_action( 'pre_get_posts', 'wps_change_posts_per_page_in_grid' );
/**
 * Change Posts Per Page
 * 
 * @author Bill Erickson
 * @author Travis Smith
 * @link http://www.billerickson.net/customize-the-wordpress-query/
 * @link http://wpsmith.net/2013/genesis/genesis-grid-loop-in-genesis-1-9/
 * @param object $query WP Query data
 *
 */
function wps_change_posts_per_page_in_grid( $query ) {
  
	global $wp_the_query;
	if( $query-&gt;is_main_query() &amp;&amp; wps_is_doing_grid_loop() ) {
		$query-&gt;set( 'posts_per_page', '15' );
	}
 
}</code></pre></noscript></p>
<p>Please note that all of this code belongs in <em>functions.php</em> or some other custom file. I personally recommend a custom <em>query.php</em> or <em>grid.php</em> file to keep your code clean.</p>
<p>So back in your template file, you can change the original loop function to:</p>
<pre class="brush: php; title: ; notranslate">
if ( function_exists( 'genesis_grid_loop' ) ) {
	genesis_grid_loop(
		array(
			'features'              =&gt; 0,
			'feature_image_size'    =&gt; 0,
			'feature_image_class'   =&gt; 'alignright post-image',
			'feature_content_limit' =&gt; 0,
			'grid_image_size'       =&gt; 'thumbnail',
			'grid_image_class'      =&gt; 'alignleft',
			'grid_content_limit'    =&gt; 250,
			'more'                  =&gt; __( '[Read more...]', 'child-domain' ),
		) 
	);
} else {
	genesis_standard_loop();
}
</pre>
<p>These are the necessary components for displaying the loop, which is modified via <code>pre_get_posts</code> now.</p>
<p>The post <a href="http://wpsmith.net/2013/genesis/genesis-grid-loop-in-genesis-1-9/">Genesis Grid Loop in Genesis 1.9</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p><img src="http://feeds.feedburner.com/~r/WPSmith/~4/Za5TtxBmD8k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpsmith.net/2013/genesis/genesis-grid-loop-in-genesis-1-9/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://wpsmith.net/2013/genesis/genesis-grid-loop-in-genesis-1-9/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=genesis-grid-loop-in-genesis-1-9</feedburner:origLink></item>
		<item>
		<title>Create Genesis Constants Based on Theme</title>
		<link>http://feedproxy.google.com/~r/WPSmith/~3/ozIYarlGDNo/</link>
		<comments>http://wpsmith.net/2013/wp/create-genesis-constants-based-on-theme/#comments</comments>
		<pubDate>Mon, 07 Jan 2013 18:57:10 +0000</pubDate>
		<dc:creator>Travis Smith</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://wpsmith.net/?p=20489</guid>
		<description><![CDATA[<p>In my child themes, this little function that I wrote based on the new wp_get_theme() function (Codex, WP Ticket). Previously, I had to create style.css with all the data and then had to do the same thing in functions.php (or my child init.php). So to save 30 seconds or so, I have no fully automated [...]</p><p>The post <a href="http://wpsmith.net/2013/wp/create-genesis-constants-based-on-theme/">Create Genesis Constants Based on Theme</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>In my child themes, this little function that I wrote based on the new <code>wp_get_theme()</code> function (<a href="http://codex.wordpress.org/Function_Reference/wp_get_theme" title="wp_get_theme()" target="_blank">Codex</a>, <a href="http://core.trac.wordpress.org/ticket/23040" title="Use get() method" target="_blank">WP Ticket</a>). Previously, I had to create style.css with all the data and then had to do the same thing in functions.php (or my child init.php). So to save 30 seconds or so, I have no fully automated this entirely, so everything in style.css matters. Everything!</p>
<p>Let&#8217;s step through the style.css header.<br />
<script src="https://gist.github.com/4477270.js?file=style.css"></script><noscript><pre><code class="language-css css">/*
  Theme Name: Genesis Child
  Theme URI: http://wpsmith.net/
  Description: Default Genesis Child Theme.
  Author: Travis Smith
  Author URI: http://wpsmith.net/
  Version: 1.0.0
  Text Domain: genesis-child
  Tags: black, white, red, one-column, two-columns, three-columns, left-sidebar, right-sidebar, fixed-width, custom-background, custom-header, custom-menu, editor-style, full-width-template, sticky-post, theme-options, threaded-comments, translation-ready

  Template: genesis
  Template Version: 1.9.0

  License: GNU General Public License v3.0 (or later)
  License URI: http://opensource.org/licenses/gpl-license.php
*/</code></pre></noscript></p>
<p>Obviously, Template and Template version should be set for every child theme.</p>
<p>So Theme Name will determine CHILD_THEME_NAME, which will automatically appear in the Genesis Footer connected with the Theme URI, which is set as CHILD_THEME_URL. WordPress pulls in the Description on the Appearance > Themes page. I have an admin script that I make better use of Author and Author URI besides the basic WordPress listing them in Appearance > Themes (as it also uses <a href="http://wordpress.org/extend/themes/tag-filter/" title="Allowed WordPress Tags" target="_blank">Tags</a>). It places it in the footer stating, &#8220;Thank you for creating with WordPress &#038; CHILD_THEME_NAME designed by CHILD_DEVELOPER&#8221; linked with CHILD_DEVELOPER_URL.</p>
<p>What&#8217;s even more awesome is that Genesis 1.9 makes use of CHILD_THEME_VERSION if it is set in enqueuing the style. So, it&#8217;s important, but I also use it elsewhere. Then the even more awesome thing is Text Domain! Text Domain sets two constants: CHILD_DOMAIN (localization) and CHILD_THEME_SETTINGS (admin page). So if Text Domain is set as &#8216;genesis-child&#8217; then the CHILD_DOMAIN will be &#8216;genesis-child&#8217; and the CHILD_THEME_SETTINGS will be &#8216;genesis-child-settings&#8217;.</p>
<p>Now, I don&#8217;t have to think a single bit for my theme constants. I just use this function in all child themes I create.</p>
<script src="https://gist.github.com/4477270.js?file=gs_constants.php"></script><noscript><pre><code class="language-php php">&lt;?php

add_action( 'genesis_init', 'gs_constants', 15 );
/**
 * This function defines the Genesis Child theme constants
 *
 * Data Constants: CHILD_SETTINGS_FIELD, CHILD_DOMAIN, CHILD_THEME_VERSION
 * CHILD_THEME_NAME, CHILD_THEME_URL, CHILD_DEVELOPER, CHILD_DEVELOPER_URL
 * Directories: CHILD_LIB_DIR, CHILD_IMAGES_DIR, CHILD_ADMIN_DIR, CHILD_JS_DIR, CHILD_CSS_DIR
 * URLs: CHILD_LIB, CHILD_IMAGES, CHILD_ADMIN, CHILD_JS, CHILD_CSS
 *
 * @since 1.1.0
 */
function gs_constants() {
  $theme = wp_get_theme();
	
	// Child theme (Change but do not remove)
		/** @type constant Child Theme Options/Settings. */
		define( 'CHILD_SETTINGS_FIELD', $theme-&gt;get('TextDomain') . '-settings' );
		
		/** @type constant Text Domain. */
		define( 'CHILD_DOMAIN', $theme-&gt;get('TextDomain') );
		
		/** @type constant Child Theme Version. */
		define( 'CHILD_THEME_VERSION', $theme-&gt;Version );
		
		/** @type constant Child Theme Name, used in footer. */
		define( 'CHILD_THEME_NAME', $theme-&gt;Name );
		
		/** @type constant Child Theme URL, used in footer. */
		define( 'CHILD_THEME_URL', $theme-&gt;get('ThemeURI') );
		
	// Developer Information, see lib/admin/admin-functions.php
		/** @type constant Child Theme Developer, used in footer. */
		define( 'CHILD_DEVELOPER', $theme-&gt;Author );
		
		/** @type constant Child Theme Developer URL, used in footer. */
		define( 'CHILD_DEVELOPER_URL', $theme-&gt;{'Author URI'}  );
		
	// Define Directory Location Constants
		/** @type constant Child Theme Library/Includes URL Location. */
		define( 'CHILD_LIB_DIR',    CHILD_DIR . '/lib' );
		
		/** @type constant Child Theme Images URL Location. */
		define( 'CHILD_IMAGES_DIR', CHILD_DIR . '/images' );
		
		/** @type constant Child Theme Admin URL Location. */
		define( 'CHILD_ADMIN_DIR',  CHILD_LIB_DIR . '/admin' );
		
		/** @type constant Child Theme JS URL Location. */
		define( 'CHILD_JS_DIR',     CHILD_DIR .'/js' );
		
		/** @type constant Child Theme JS URL Location. */
		define( 'CHILD_CSS_DIR',    CHILD_DIR .'/css' );
	
	// Define URL Location Constants
		/** @type constant Child Theme Library/Includes URL Location. */
		define( 'CHILD_LIB',    CHILD_URL . '/lib' );
		
		/** @type constant Child Theme Images URL Location. */
		define( 'CHILD_IMAGES', CHILD_URL . '/images' );
		
		/** @type constant Child Theme Admin URL Location. */
		define( 'CHILD_ADMIN',  CHILD_LIB . '/admin' );
		
		/** @type constant Child Theme JS URL Location. */
		define( 'CHILD_JS',     CHILD_URL .'/js' );
		
		/** @type constant Child Theme JS URL Location. */
		define( 'CHILD_CSS',    CHILD_URL .'/css' );	
}</code></pre></noscript>
<p>The post <a href="http://wpsmith.net/2013/wp/create-genesis-constants-based-on-theme/">Create Genesis Constants Based on Theme</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p><img src="http://feeds.feedburner.com/~r/WPSmith/~4/ozIYarlGDNo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpsmith.net/2013/wp/create-genesis-constants-based-on-theme/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://wpsmith.net/2013/wp/create-genesis-constants-based-on-theme/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=create-genesis-constants-based-on-theme</feedburner:origLink></item>
		<item>
		<title>Add private/draft/future/pending pages to parent dropdown in page attributes and Quick Edit</title>
		<link>http://feedproxy.google.com/~r/WPSmith/~3/uHSNCznc8fY/</link>
		<comments>http://wpsmith.net/2013/wp/add-privatedraftfuturepending-pages-to-parent-dropdown-in-page-attributes-and-quick-edit/#comments</comments>
		<pubDate>Fri, 04 Jan 2013 11:00:46 +0000</pubDate>
		<dc:creator>Travis Smith</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://wpsmith.net/?p=20484</guid>
		<description><![CDATA[<p></p><p>The post <a href="http://wpsmith.net/2013/wp/add-privatedraftfuturepending-pages-to-parent-dropdown-in-page-attributes-and-quick-edit/">Add private/draft/future/pending pages to parent dropdown in page attributes and Quick Edit</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p>]]></description>
				<content:encoded><![CDATA[<script src="https://gist.github.com/4444615.js"></script><noscript><pre><code class="language-php php">&lt;?php

add_filter( 'page_attributes_dropdown_pages_args', 'wps_dropdown_pages_args_add_parents' );
add_filter( 'quick_edit_dropdown_pages_args', 'wps_dropdown_pages_args_add_parents' );
/**
 * Add private/draft/future/pending pages to parent dropdown.
 */
function wps_dropdown_pages_args_add_parents( $dropdown_args, $post = NULL ) {
    $dropdown_args['post_status'] = array( 'publish', 'draft', 'pending', 'future', 'private', );
    return $dropdown_args;
}</code></pre></noscript>
<p>The post <a href="http://wpsmith.net/2013/wp/add-privatedraftfuturepending-pages-to-parent-dropdown-in-page-attributes-and-quick-edit/">Add private/draft/future/pending pages to parent dropdown in page attributes and Quick Edit</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p><img src="http://feeds.feedburner.com/~r/WPSmith/~4/uHSNCznc8fY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpsmith.net/2013/wp/add-privatedraftfuturepending-pages-to-parent-dropdown-in-page-attributes-and-quick-edit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wpsmith.net/2013/wp/add-privatedraftfuturepending-pages-to-parent-dropdown-in-page-attributes-and-quick-edit/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=add-privatedraftfuturepending-pages-to-parent-dropdown-in-page-attributes-and-quick-edit</feedburner:origLink></item>
		<item>
		<title>Disable AutoSave on Add New Post Admin Page</title>
		<link>http://feedproxy.google.com/~r/WPSmith/~3/20CISh7ZfKk/</link>
		<comments>http://wpsmith.net/2013/custom-post-types/disable-autosave-on-add-new-post-admin-page/#comments</comments>
		<pubDate>Thu, 03 Jan 2013 16:12:27 +0000</pubDate>
		<dc:creator>Travis Smith</dc:creator>
				<category><![CDATA[Custom Post Types]]></category>

		<guid isPermaLink="false">http://wpsmith.net/?p=20482</guid>
		<description><![CDATA[<p>Disabling revisions won&#8217;t stop WordPress from creating the initial draft version of a custom post type. So I used this snippet to accomplish this as well.</p><p>The post <a href="http://wpsmith.net/2013/custom-post-types/disable-autosave-on-add-new-post-admin-page/">Disable AutoSave on Add New Post Admin Page</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Disabling revisions won&#8217;t stop WordPress from creating the initial draft version of a custom post type. So I used this snippet to accomplish this as well.</p>
<script src="https://gist.github.com/4444552.js"></script><noscript><pre><code class="language-php php">&lt;?php
add_action( 'admin_enqueue_scripts', 'wps_cpt_admin_enqueue_scripts' );
/**
 * Disable initial autosave/autodraft
 */
function wps_cpt_admin_enqueue_scripts() {
    if ( 'cpt' == get_post_type() )
        wp_dequeue_script( 'autosave' );
}</code></pre></noscript>
<p>The post <a href="http://wpsmith.net/2013/custom-post-types/disable-autosave-on-add-new-post-admin-page/">Disable AutoSave on Add New Post Admin Page</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p><img src="http://feeds.feedburner.com/~r/WPSmith/~4/20CISh7ZfKk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpsmith.net/2013/custom-post-types/disable-autosave-on-add-new-post-admin-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wpsmith.net/2013/custom-post-types/disable-autosave-on-add-new-post-admin-page/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=disable-autosave-on-add-new-post-admin-page</feedburner:origLink></item>
		<item>
		<title>Genesis Child Theme Code Audit</title>
		<link>http://feedproxy.google.com/~r/WPSmith/~3/VF3Hu5bhZJM/</link>
		<comments>http://wpsmith.net/2012/genesis/genesis-child-theme-code-audit/#comments</comments>
		<pubDate>Fri, 28 Dec 2012 16:12:11 +0000</pubDate>
		<dc:creator>Travis Smith</dc:creator>
				<category><![CDATA[Genesis]]></category>

		<guid isPermaLink="false">http://wpsmith.net/?p=20480</guid>
		<description><![CDATA[<p>Calling all Genesis developers! Through January 2nd, I am offering a basic initial audit of up to 4 Genesis child themes for $50 and only $50! Get it Now! You may be thinking, &#8220;Why should I audit my theme if it is selling already so well?&#8221; Or, &#8220;My theme is on the Genesis Marketplace and [...]</p><p>The post <a href="http://wpsmith.net/2012/genesis/genesis-child-theme-code-audit/">Genesis Child Theme Code Audit</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://wpsmith.net/wp-content/uploads/2012/12/screenshot.png"><img src="http://wpsmith.net/wp-content/uploads/2012/12/screenshot.png" alt="" title="screenshot" width="300" height="225" class="alignleft size-full wp-image-20481" /></a>Calling all Genesis developers! Through January 2nd, I am offering a basic initial audit of <strong>up to 4 Genesis child themes</strong> for <strong>$50</strong> and only <strong>$50</strong>!</p>
<p><a class="button-black" href="http://wpsmith.net/wordpress-code-audit-service/checkout/?choice=basic&#038;genesis=developersale">Get it Now!</a></p>
<p>You may be thinking, &#8220;Why should I audit my theme if it is selling already so well?&#8221; Or, &#8220;My theme is on the Genesis Marketplace and doesn&#8217;t need to be audited.&#8221; Or, &#8220;I purchased this from the Genesis Marketplace, so the theme has already been audited.&#8221; Or, &#8220;I developed this theme for a client who won&#8217;t know.&#8221; Or, &#8220;I had this theme developed by another Genesis developer, and I am just not sure about it.&#8221;</p>
<p>First, themes on the Genesis Marketplace have not necessarily been audited. Genesis Marketplace themes are developer dependent. While StudioPress recommended these themes be audited by myself or Gary Jones or another developer, the submitting developer may or may not have done this because until now, audits were expensive. Thus, the theme may or may not be written to WordPress standards and/or best practices.</p>
<p>Second, themes audited <em>almost always</em> reveal something, which will lead to easier maintenance, lower support costs, code confidence, and happier customers! Customers always find out how good or bad the code is/was that was written. The theme/site may come into conflict with a plugin that they want to use. The theme/site may have issues with the Genesis/WordPress upgrade cycle. Whatever the case, they either return to you, try to do it themselves, or hire another Genesis developer. Even themes/sites I&#8217;ve built six months ago give me shivers when I go back and work on them. I&#8217;ve worked on themes that were originally developed by many Genesis developers and surely there have been Genesis developers who have worked on sites that I originally created. If, however, I had the theme/site audited then I would have most definitely produced a better product and had more confidence in my code.</p>
<p class="aligncenter"><a class="button-black" href="http://wpsmith.net/wordpress-code-audit-service/checkout/?choice=basic&#038;genesis=developersale">Get the Audit Today</a></p>
<p>The post <a href="http://wpsmith.net/2012/genesis/genesis-child-theme-code-audit/">Genesis Child Theme Code Audit</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p><img src="http://feeds.feedburner.com/~r/WPSmith/~4/VF3Hu5bhZJM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpsmith.net/2012/genesis/genesis-child-theme-code-audit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wpsmith.net/2012/genesis/genesis-child-theme-code-audit/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=genesis-child-theme-code-audit</feedburner:origLink></item>
		<item>
		<title>Dequeue Soliloquy Style</title>
		<link>http://feedproxy.google.com/~r/WPSmith/~3/Kh6qvtudIkA/</link>
		<comments>http://wpsmith.net/2012/plugins/dequeue-soliloquy-style/#comments</comments>
		<pubDate>Mon, 19 Nov 2012 01:44:24 +0000</pubDate>
		<dc:creator>Travis Smith</dc:creator>
				<category><![CDATA[Plugins]]></category>

		<guid isPermaLink="false">http://wpsmith.net/?p=19603</guid>
		<description><![CDATA[<p>Since Soliloquy does not &#8220;properly&#8221; enqueue the flexslider stylesheet (only meaning, it doesn&#8217;t hook into wp_enqueue_scripts, and frankly, it does it with the best approach IMHO). Here is the proper hook to remove the default Soliloquy style sheet.</p><p>The post <a href="http://wpsmith.net/2012/plugins/dequeue-soliloquy-style/">Dequeue Soliloquy Style</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Since <a href="http://wpsmith.net/go/soliloquy" title="Get Soliloquy" target="_blank">Soliloquy</a> does not &#8220;properly&#8221; enqueue the flexslider stylesheet (<strong><em>only</em></strong> meaning, it doesn&#8217;t hook into <code>wp_enqueue_scripts</code>, and frankly, it does it with the best approach IMHO). Here is the proper hook to remove the default <a href="http://wpsmith.net/go/soliloquy" title="Get Soliloquy" target="_blank">Soliloquy</a> style sheet.</p>
<script type="text/javascript">
		jQuery(document).ready(function($){
			$('.gist').hover(function() {
				$(this).animate({
					width: '960px'
				}, 300);
			},function() {
				$(this).animate({
					width: '600px'
				}, 300);
			});
		});</script><script src="https://gist.github.com/4108522.js"></script>
<p>The post <a href="http://wpsmith.net/2012/plugins/dequeue-soliloquy-style/">Dequeue Soliloquy Style</a> appeared first on <a href="http://wpsmith.net">WP Smith</a>.</p><img src="http://feeds.feedburner.com/~r/WPSmith/~4/Kh6qvtudIkA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://wpsmith.net/2012/plugins/dequeue-soliloquy-style/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://wpsmith.net/2012/plugins/dequeue-soliloquy-style/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=dequeue-soliloquy-style</feedburner:origLink></item>
	</channel>
</rss>
