<?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>Sofarider</title>
	<atom:link href="http://rider.sofarider.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://rider.sofarider.com</link>
	<description>Just another WordPress site</description>
	<lastBuildDate>Tue, 26 Oct 2010 08:40:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>WP Theme released: Sofa Avatar</title>
		<link>http://rider.sofarider.com/wordpress-themes/wp-theme-released-sofa-avatar/</link>
		<comments>http://rider.sofarider.com/wordpress-themes/wp-theme-released-sofa-avatar/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 08:39:48 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WordPress Themes]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[multipurpose wprdpress theme]]></category>
		<category><![CDATA[piecemaker]]></category>
		<category><![CDATA[shortcodes]]></category>
		<category><![CDATA[wordpress blog theme]]></category>
		<category><![CDATA[wordpress corporate theme]]></category>

		<guid isPermaLink="false">http://rider.sofarider.com/?p=149</guid>
		<description><![CDATA[Sofa Avatar is fully WordPress 3.0+ compliant, having support for Menus, Background and Header. Home page layout (+ design) can be user arranged so the purpose of this theme litterally fits to ANY niche, no matter whether you are about to run a blog, corpo website, restaurant, portfolio, church web, etc. There are several (optional) <a href="http://rider.sofarider.com/wordpress-themes/wp-theme-released-sofa-avatar/" class="more-link">READ MORE</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://rider.sofarider.com/wp-content/uploads/2010/10/1_promo.png"><img src="http://rider.sofarider.com/wp-content/uploads/2010/10/1_promo-274x150.png" alt="" title="1_promo" width="274" height="150" class="alignnone size-thumbnail wp-image-151" /></a>Sofa Avatar is fully WordPress 3.0+ compliant, having support for Menus, Background and Header.<br />
Home page layout (+ design) can be user arranged so the purpose of this theme litterally fits to ANY niche, no matter whether you are about to run a blog, corpo website, restaurant, portfolio, church web, etc. There are several (optional) header elements which can be combined at will: Adobe Flash made image rotator (Piecemaker), jQuery Featured Content slider, WP&#8217;s Header (static image) and Extra Content section. On top of that, users can pick (from theme Options) 3 different Home page layouts:</p>
<ul>
<li>Widgets only</li>
<li>Posts Grid or</li>
<li>Classic Blog layout</li>
</ul>
<p>By combining optional header elements and available layouts you can create something really unique in just a few clicks.<br />
This theme also comes with 3 different custom templates; Contact, Gallery and Full Width Page.<br />It does provide support for Shortcodes too and theme Options page gives you an easy way to literally control each vital part of Sofa Avatar theme. There&#8217;s many more you&#8217;ll discover, I bet you gonna love it!</p>
<h2>Features Summary</h2>
<ul>
<li>Support for Header, Background and Menus (full WP 3.0+ compliant)</li>
<li>Switchable home page layouts</li>
<li>Fully integrated Piecemaker (Adobe Flash images rotator)</li>
<li>jQuery made Featured Content Slider</li>
<li>Multi-level drop-down navigation</li>
<li>11 built-in Widgets (GoogleMaps, Sectional Navigation, Twitter, Flickr, etc.)</li>
<li>Custom Templates: Gallery (filterable), Full Width, Contact</li>
<li>Shortcodes (enabled for Widgets)</li>
<li>Pre-made backgrounds</li>
<li>Localization file included</li>
<li>Admin Options page for easy theme settings/tunning</li>
</ul>
<h2>Do you want to install entire Sofa Avatar demo site locally?</h2>
<p>Download this mini guide and find out how to replicate Sofa Avatar demo site on your local machine:<br />
<a href="http://sofarider.com/downloads/avatar_help_install/avatar_install_demo.pdf" target="_blank">DOWNLOAD MANUALS</a></p>
<h2>Where to buy?</h2>
<p>This theme can be purchased from <a href="http://themeforest.net/item/sofa-avatar-wp-theme-with-many-faces/133693">Themeforest</a> only!</p>
<h2>Screenshots</h2>
<p><a href="http://rider.sofarider.com/wp-content/uploads/2010/10/2_layout_classic.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/10/2_layout_classic-274x150.jpg" alt="" title="2_layout_classic" width="274" height="150" class="alignnone size-thumbnail wp-image-152" /></a><a href="http://rider.sofarider.com/wp-content/uploads/2010/10/3_layout_funky.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/10/3_layout_funky-274x150.jpg" alt="" title="3_layout_funky" width="274" height="150" class="alignnone size-thumbnail wp-image-153" /></a><a href="http://rider.sofarider.com/wp-content/uploads/2010/10/4_layout_full.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/10/4_layout_full-274x150.jpg" alt="" title="4_layout_full" width="274" height="150" class="alignnone size-thumbnail wp-image-154" /></a><a href="http://rider.sofarider.com/wp-content/uploads/2010/10/5_layout_grid.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/10/5_layout_grid-274x150.jpg" alt="" title="5_layout_grid" width="274" height="150" class="alignnone size-thumbnail wp-image-155" /></a><a href="http://rider.sofarider.com/wp-content/uploads/2010/10/6_layout_busy.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/10/6_layout_busy-274x150.jpg" alt="" title="6_layout_busy" width="274" height="150" class="alignnone size-thumbnail wp-image-150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://rider.sofarider.com/wordpress-themes/wp-theme-released-sofa-avatar/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why do we need cat_is_ancestor_of()?</title>
		<link>http://rider.sofarider.com/wordpress-tips-and-tricks/why-do-we-need-cat_is_ancestor_of/</link>
		<comments>http://rider.sofarider.com/wordpress-tips-and-tricks/why-do-we-need-cat_is_ancestor_of/#comments</comments>
		<pubDate>Wed, 29 Sep 2010 13:04:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WordPress Tips and Tricks]]></category>
		<category><![CDATA[blog portfolio theme]]></category>
		<category><![CDATA[cat_is_ancestor_of]]></category>
		<category><![CDATA[dual wordpress theme]]></category>

		<guid isPermaLink="false">http://rider.sofarider.com/?p=124</guid>
		<description><![CDATA[I bet you&#8217;ve already seen those dual themes called Blog-Portfolio or something like that. Such WordPress themes use 2 or more different layouts to render different sections of WordPress driven website. More precisely, if we talk about Blog-Portfolio theme, one layout is probably used for blog category while the other one relates to portfolio. Of <a href="http://rider.sofarider.com/wordpress-tips-and-tricks/why-do-we-need-cat_is_ancestor_of/" class="more-link">READ MORE</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/evolution-274x150.jpg" alt="" title="evolution" width="274" height="150" class="alignnone size-thumbnail wp-image-126" />I bet you&#8217;ve already seen those dual themes called Blog-Portfolio or something like that. Such WordPress themes use 2 or more different layouts to render different sections of WordPress driven website. More precisely, if we talk about Blog-Portfolio theme, one layout is probably used for blog category while the other one relates to portfolio. Of course, we have to include single view page (template) for both blog and portfolio sections, otherwise there&#8217;s not much point in using it.<br />
So where&#8217;s the catch? Basically, all we need to do is to split &#8220;category.php&#8221; on two separate templates, something like &#8220;category_blog.php&#8221; and &#8220;category_portfolio.php&#8221;. The original &#8220;category.php&#8221; should act like a switch and decide whether to load one of the above mentioned files. The same rule generally applies to &#8220;single.php&#8221; and its two alias files (&#8220;single_blog.php&#8221; and &#8220;single_portfolio.php&#8221;).<br />
Please note that the following code example is taken out of context which means that both blog and category IDs are already known &#8211; both have been set via theme options!</p>
<pre>
<code>
&lt;?php
// template switch between Blog and Portfolio category
$aOptions = YourThemeInitClass::initOptions( false ); // load theme options
$blog_ID = (int)$aOptions[ 'blog-id' ];
$portfolio_ID = (int)$aOptions[ 'portfolio-id' ];

// get the current category
$categ_object = get_category( get_query_var( 'cat' ), false );

// who's our ancestor, blog or portfolio?
if( (int)$categ_object->category_parent > 0 ) {
	if( cat_is_ancestor_of( $blog_ID, (int)$categ_object->cat_ID ) ) include( TEMPLATEPATH . '/category_blog.php' );
	else if( cat_is_ancestor_of( $portfolio_ID, (int)$categ_object->cat_ID ) ) include( TEMPLATEPATH . '/category_portfolio.php' );
} else {
	if( (int)$categ_object->cat_ID == $blog_ID ) include( TEMPLATEPATH . '/category_blog.php' );
	else if( (int)$categ_object->cat_ID == $portfolio_ID ) include( TEMPLATEPATH . '/category_portfolio.php' );
}
?&gt;
</code>
</pre>
<p>I guess you&#8217;ve got the point so far. cat_is_ancestor_of() is supposed to check whether current category belongs to blog or portfolio part. Current category children are also treated in that manner, no matter the level of depth.<br />
You can simply paste the above code into &#8220;category.php&#8221;. Be sure to provide proper category IDs either by hard-coding them or via theme functions/options page.</p>
<h2>What about single view switch?</h2>
<p>Believe it or not, it&#8217;s even simpler. Due to the fact WordPress is about to render &#8220;single.php&#8221; (aka Post details) we already have all required info. Each of your Posts MUST belong to a certain category, otherwise it just can&#8217;t exist in the system.</p>
<pre>
<code>
&lt;?php
// template switch between Blog and Portfolio category
$aOptions = YourThemeInitClass::initOptions( false ); // load theme options
$blog_ID = (int)$aOptions[ 'blog-id' ];
$portfolio_ID = (int)$aOptions[ 'portfolio-id' ];

// our post belongs to this category...
$categ_object = get_the_category();

// who's our ancestor, blog or portfolio?
if( cat_is_ancestor_of( $blog_ID, (int)$categ_object[ 0 ]->cat_ID ) ) include( TEMPLATEPATH . '/single_blog.php' );
else if( cat_is_ancestor_of( $portfolio_ID, (int)$categ_object[ 0 ]->cat_ID ) ) include( TEMPLATEPATH . '/single_portfolio.php' );
?&gt;
</code>
</pre>
<p>Paste the above code into &#8220;single.php&#8221; template file and be sure to provide proper category IDs (in our case $blog_ID and $portfolio_ID). It&#8217;s quite clear that in case you wanna have more different layouts &#8211; more conditional statements have to be used.</p>
]]></content:encoded>
			<wfw:commentRss>http://rider.sofarider.com/wordpress-tips-and-tricks/why-do-we-need-cat_is_ancestor_of/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to find out whether a Page has sub-pages?</title>
		<link>http://rider.sofarider.com/wordpress-tips-and-tricks/how-to-find-out-whether-a-page-has-sub-pages/</link>
		<comments>http://rider.sofarider.com/wordpress-tips-and-tricks/how-to-find-out-whether-a-page-has-sub-pages/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 12:44:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WordPress Tips and Tricks]]></category>
		<category><![CDATA[child pages]]></category>
		<category><![CDATA[get_page_children]]></category>
		<category><![CDATA[navigation]]></category>
		<category><![CDATA[sub-pages]]></category>
		<category><![CDATA[wp_list_pages]]></category>
		<category><![CDATA[wp_list_pages_exclude_these]]></category>

		<guid isPermaLink="false">http://rider.sofarider.com/?p=100</guid>
		<description><![CDATA[There are several ways to achieve the goal but I guess this one is the most efficient and quickest due to fact it uses WordPress&#8217; built-in recursive function called &#8220;get_page_children&#8221;. What this function actually does? It matches against the pages parameter against the page ID and in the same time matches all children for the <a href="http://rider.sofarider.com/wordpress-tips-and-tricks/how-to-find-out-whether-a-page-has-sub-pages/" class="more-link">READ MORE</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/ancestors-274x150.jpg" alt="" title="ancestors" width="274" height="150" class="alignnone size-thumbnail wp-image-102" />There are several ways to achieve the goal but I guess this one is the most efficient and quickest due to fact it uses WordPress&#8217; built-in recursive function called &#8220;get_page_children&#8221;. What this function actually does? It matches against the pages parameter against the page ID and in the same time matches all children for the same to retrieve all children of a page. However, be careful because it doesn&#8217;t make additional SQL queries to actually get children.</p>
<pre>
<code>
&lt;?php
global $post;
$all_pages = get_pages(); // retrieve all pages
$children = (array)get_page_children( $post->ID, $all_pages ); // $post->ID is supposed to be Page ID, WP treats both equally
// var_dump( $children ); // it'll dump either an empty or array of pages
?&gt;
</code>
</pre>
<h2>Any practical example?</h2>
<p>We can use it in order to improve &#8220;wp_list_pages()&#8221; function! For example, let&#8217;s say you want to list all the pages as navigation links in sidebar. By using &#8220;wp_list_pages()&#8221; you can&#8217;t make exceptions, you can either make the list of:</p>
<ul>
<li>all root pages only</li>
<li>root pages and belonging sub-pages hierarchically (in nested lists)</li>
<li>a list of current page children</li>
</ul>
<p>But what you can&#8217;t do is to display only children of a current page while other in nested lists remain hidden. Here&#8217;s how WordPress does render stuff hierarchically:<br />
<strong>Menu item 1</strong><br />
|- Subitem 1 of menu item 1<br />
|- Subitem 2 of menu item 1<br />
|- Subitem 3 of menu item 1<br />
&nbsp; |&#8211; Subitem 1 of Subitem 3 of menu item 1<br />
&nbsp; |&#8211; Subitem 2 of Subitem 3 of menu item 1<br />
<strong>Menu item 2</strong><br />
|- Subitem 1 of menu item 2<br />
|- Subitem 2 of menu item 2<br />
<strong>Menu item 3</strong><br />
|- Subitem 1 of menu item 3<br />
|- Subitem 2 of menu item 3<br />
&nbsp; |&#8211; Subitem 1 of Subitem 2 of menu item 3<br />
&nbsp; |&#8211; Subitem 2 of Subitem 2 of menu item 3</p>
<blockquote><p>&#8230;and here&#8217;s what we actually want to see in sidebar while reading the page called &#8220;Menu item 1&#8243;:</p></blockquote>
<p><strong>Menu item 1</strong><br />
|- Subitem 1 of menu item 1<br />
|- Subitem 2 of menu item 1<br />
|- Subitem 3 of menu item 1<br />
<strong>Menu item 2</strong><br />
<strong>Menu item 3</strong></p>
<p>What we need now is to intercept default hierarchical menu rendering and inject our own solution/code. Of course, we have to modify &#8216;wp_list_pages_exclude_these&#8217; function a little bit in order to achieve desired pages menu structure.</p>
<pre>
<code>
&lt;?php
function only_current_page_children() {
	$exclude_these = array();
	$all_published_pages = get_pages();
	$all_children = get_page_children( true, $all_published_pages );

	foreach( $all_children as $child ) {
		array_push( $exclude_these, $child->ID );
	}

	if( !is_page() ) return $exclude_these;

	global $post;
	$my_parenthood = $post->ancestors;
	$my_own_children = get_page_children( $post->ID, $all_published_pages );

	foreach( $my_parenthood as $ancestor ) {
		$my_own_children = array_merge( $my_own_children, get_page_children( $ancestor, $all_published_pages ) );
	}

	foreach ( $my_own_children as $child ) {
		array_push( $my_parenthood, $child->ID );
	}

	return array_diff( $exclude_these, $my_parenthood );
}
// override default 'wp_list_pages_exclude_these'
add_filter( 'wp_list_pages_exclude_these', 'only_current_page_children' );
?&gt;
</code>
</pre>
<h2>Where to paste the above code?</h2>
<p>If your WP theme doesn&#8217;t contain &#8220;functions.php&#8221; file &#8211; create one and simply paste. Otherwise use existing &#8220;functions.php&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://rider.sofarider.com/wordpress-tips-and-tricks/how-to-find-out-whether-a-page-has-sub-pages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to auto-trim the_content()?</title>
		<link>http://rider.sofarider.com/wordpress-tips-and-tricks/how-to-trim-the_content-automatically/</link>
		<comments>http://rider.sofarider.com/wordpress-tips-and-tricks/how-to-trim-the_content-automatically/#comments</comments>
		<pubDate>Sun, 19 Sep 2010 07:13:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WordPress Tips and Tricks]]></category>
		<category><![CDATA[automatic read more link]]></category>
		<category><![CDATA[trim html]]></category>
		<category><![CDATA[trim the_content]]></category>

		<guid isPermaLink="false">http://rider.sofarider.com/?p=91</guid>
		<description><![CDATA[There are two &#8220;official&#8221; methods of how to display Post excerpt: by using built-in text editor &#8220;Insert More tag&#8221; (Ctrl+Shift+T) or WordPress function named &#8220;the_excerpt()&#8221;. By the way, Post excerpt is actually a chunk of text containing that &#8220;MORE&#8221; link at the end. None of these two offer an elegant solution &#8211; that&#8217;s my personal <a href="http://rider.sofarider.com/wordpress-tips-and-tricks/how-to-trim-the_content-automatically/" class="more-link">READ MORE</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/trim-274x150.jpg" alt="trim post content" title="trim post content" width="274" height="150" class="alignnone size-thumbnail wp-image-95" />There are two &#8220;official&#8221; methods of how to display Post excerpt: by using built-in text editor &#8220;Insert More tag&#8221; (Ctrl+Shift+T) or WordPress function named &#8220;the_excerpt()&#8221;. By the way, Post excerpt is actually a chunk of text containing that &#8220;MORE&#8221; link at the end. None of these two offer an elegant solution &#8211; that&#8217;s my personal opinion.<br />
<strong>The first one</strong> is partially OK because it allows users to insert &#8220;MORE&#8221; link at desired position in text and HTML doesn&#8217;t get stripped on front-end. However, people often forget to insert more tag or hate counting words in order to keep Post excerpt consistent regarding the amount of text.<br />
<strong>The second method</strong> is usually built into certain template file (the_excerpt() function) and is supposed to automatically trim Post content to 55 words. It sounds fine but you gotta know that this function strips down all of HTML tags including images.</p>
<blockquote><p>So how about to simply trim the_content() to desired number of words, keep all of HTML tags and no need for More tag insertion at all?</p></blockquote>
<p>Here&#8217;s the function I use for all of my themes and it works perfectly&#8230;</p>
<pre><code>
&lt;?php
function trim_the_content( $the_contents = '', $read_more_tag = '...READ MORE', $perma_link_to = '', $all_words = 45 ) {
	// make the list of allowed tags
	$allowed_tags = array( 'a', 'abbr', 'b', 'blockquote', 'b', 'cite', 'code', 'div', 'em', 'fon', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'label', 'i', 'p', 'pre', 'span', 'strong', 'title', 'ul', 'ol', 'li', 'object', 'embed', 'param' );
	if( $the_contents != '' &amp;&amp; $all_words &gt; 0 ) {
		// process allowed tags
		$allowed_tags = '&lt;' . implode( '&gt;&lt;', $allowed_tags ) . '&gt;';
		$the_contents = str_replace( ' ]]&gt;', ' ]]&gt;', $the_contents );
		$the_contents = strip_tags( $the_contents, $allowed_tags );
		// exclude HTML from counting words
		if( $all_words &gt; count( preg_split( '/[\s]+/', strip_tags( $the_contents ), -1 ) ) ) return $the_contents;
		// count all
		$all_chunks = preg_split( '/([\s]+)/', $the_contents, -1, PREG_SPLIT_DELIM_CAPTURE );
		$the_contents = '';
		$count_words = 0;
		$enclosed_by_tag = false;
		foreach( $all_chunks as $chunk ) {
			// is tag opened?
			if( 0 &lt; preg_match( '/&lt;[^&gt;]*$/s', $chunk ) ) $enclosed_by_tag = true;
			elseif( 0 &lt; preg_match( '/&gt;[^&lt;]*$/s', $chunk ) ) $enclosed_by_tag = false; 			// get entire word 			if( !$enclosed_by_tag &amp;&amp; '' != trim( $chunk ) &amp;&amp; substr( $chunk, -1, 1 ) != '&gt;' ) $count_words ++;
			$the_contents .= $chunk;
			if( $count_words &gt;= $all_words &amp;&amp; !$enclosed_by_tag ) break;
		}
                // note the class named 'more-link'. style it on your own
		$the_contents = $the_contents . '<a class="more-link" rel="nofollow" href="' . $perma_link_to . '">' . $read_more_tag . '</a>';
		// native WordPress check for unclosed tags
		$the_contents = force_balance_tags( $the_contents );
	}
	return $the_contents;
}
?&gt;
</code>
</pre>
<h2>Where to paste the above code?</h2>
<p>If your WP theme doesn&#8217;t contain &#8220;functions.php&#8221; file &#8211; create one and simply paste. Otherwise use existing &#8220;functions.php&#8221;.</p>
<h2>How to use the above function?</h2>
<p>Many of you will not need an additional explanation but here it is just for case&#8230;.<br />
Which template file uses More tag? As far as I know, the list includes &#8220;category.php&#8221;, &#8220;index.php&#8221;, &#8220;search.php&#8221;, &#8220;archive.php&#8221;, &#8220;tag.php&#8221; or any other custom made template file. It&#8217;s not a must &#8211; of course, but rather your choice. So if you decide to apply automatic content trim, standard call to a WP function the_content() will not do the job. You&#8217;ll have to add several extra lines of code instead:</p>
<pre><code>
&lt;?php
// here's the point where we are about to display Post excerpt
$perma_link = get_permalink( $post-&gt;ID ); // current Post permalink
$content = get_the_content(); // save entire content in variable
$content = apply_filters( 'the_content', $content ); // WP bug fix
$content = str_replace( ']]&gt;', ']]&gt;', $content ); // ...as well
echo trim_the_content( $content, __( "READ MORE", "sofa_memento" ), $perma_link, 55 ); // trim to 55 words
?&gt;
</code>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://rider.sofarider.com/wordpress-tips-and-tricks/how-to-trim-the_content-automatically/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to add custom input field to Media panel?</title>
		<link>http://rider.sofarider.com/wordpress-tips-and-tricks/extra-input-field-to-add-an-image-panel/</link>
		<comments>http://rider.sofarider.com/wordpress-tips-and-tricks/extra-input-field-to-add-an-image-panel/#comments</comments>
		<pubDate>Sat, 18 Sep 2010 07:49:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WordPress Tips and Tricks]]></category>
		<category><![CDATA[attachment_fields_to_edit]]></category>
		<category><![CDATA[custom media panel]]></category>
		<category><![CDATA[customize media panel]]></category>

		<guid isPermaLink="false">http://rider.sofarider.com/?p=63</guid>
		<description><![CDATA[WordPress allows you to upload many different file types and &#8211; of course &#8211; insert it to Post or Page. You already know that each file is uploaded via Media Panel and you definitely know how it looks like by default. But what if you need an extra information, beside all of available input fields? <a href="http://rider.sofarider.com/wordpress-tips-and-tricks/extra-input-field-to-add-an-image-panel/" class="more-link">READ MORE</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/custom-274x150.jpg" alt="custom media panel" title="custom media panel" width="274" height="150" class="alignnone size-thumbnail wp-image-75" />WordPress allows you to upload many different file types and &#8211; of course &#8211; insert it to Post or Page. You already know that each file is uploaded via Media Panel and you definitely know how it looks like by default. <strong>But what if you need an extra information</strong>, beside all of available input fields?<br />
Not so long time ago I had to find a solution for my friend who owns a website (WordPress) where users are able to download desktop backgrounds.<br />
Consider the following situation:<br />
- <strong>website owner wants to be able to upload background preview (smaller image file)</strong><br />
- <strong>whenever user clicks on image preview, download should be initiated</strong><br />
So I decided to add one extra input field to Media panel which was supposed to hold a path to zipped file download link. WordPress allows an access to almost each and every section of user interface ans so is with Media panel. I did it by using &#8220;attachment_fields_to_edit&#8221; and &#8220;&#8216;attachment_fields_to_save&#8221; filters&#8230;</p>
<pre><code>
&lt;?php
function attachment_url_extra( $form_fields, $post ) {
	// input field relates to attachments
        // my_field and _my_field is what you should replace with your own
	$post-&gt;post_type == 'attachment';
	$form_fields[ 'my_field' ] = array(
		'label' =&gt; __( 'MY FIELD' ),
		'input' =&gt; 'text',
		'value' =&gt; get_post_meta( $post-&gt;ID, '<span style="color: #ff0000;">_my_field</span>', true )
	);
	$form_fields[ 'my_field' ][ 'label' ] = __( 'MY FIELD' );
	$form_fields[ 'my_field' ][ 'input' ] = 'text';
	$form_fields[ 'my_field' ][ 'value' ] = get_post_meta( $post-&gt;ID, '<span style="color: #ff0000;">_my_field</span>', true );

	return $form_fields;
}

add_filter( 'attachment_fields_to_edit', 'attachment_url_extra', NULL, 2 );

function attachment_url_extra_save( $post, $attachment ) {

	if( isset( $attachment[ 'my_field' ] ) ) {
		if( trim( $attachment[ 'my_field'] ) == '' ) $post[ 'errors' ][ 'my_field' ][ 'errors' ][] = __( 'Error! Something went wrong.' );
		else update_post_meta( $post[ 'ID' ], '<span style="color: #ff0000;">_my_field</span>', $attachment[ 'my_field' ] );
	}
	return $post;

}

add_filter( 'attachment_fields_to_save', 'attachment_url_extra_save', NULL, 2 );
?&gt;
</code>
</pre>
<p>The above code will actually make your Media panel look like this:<br />
<a href="http://rider.sofarider.com/wp-content/uploads/2010/09/media_panel_input_field_extra.jpg"><img class="aligncenter size-large wp-image-67" title="media panel input field extra" src="http://rider.sofarider.com/wp-content/uploads/2010/09/media_panel_input_field_extra-570x715.jpg" alt="media panel input field extra" width="570" height="715" /></a></p>
<h2>Where to paste the above code?</h2>
<p>If your WP theme doesn&#8217;t contain &#8220;functions.php&#8221; file &#8211; create one and simply paste. Otherwise use existing &#8220;functions.php&#8221;. <strong>However we are just half way toward our goal because we gotta be able to pull inserted information out of database!</strong></p>
<h2>How to retrieve inserted information?</h2>
<p>Hence the fact attachments are treated as posts, they have its own ID and certain meta data assigned by upload. Meta data is written to your WP database table named &#8220;wp_postmeta&#8221; so all we need to do is to find out our attachment ID and pull its meta data value which corresponds to a name &#8220;_my_field&#8221; &#8211; as can be seen in above example code.<br />
Let&#8217;s say we are either in $wp_query loop (category template), single view (single.php) template file or a Page &#8211; it doesn&#8217;t really matter at this point.</p>
<pre><code>
&lt;?php
// find out attachment ID of a post. We'll consider only the first attachment/image
$attFiles = get_children( 'post_type=attachment&amp;post_mime_type=image&amp;orderby=menu_order&amp;order=ASC&amp;post_parent=' . $post-&gt;ID );
// short way to access ID
$arrK = array_keys( $attFiles );
if( $arrK[ 0 ] ) {
	// ...
	$gpm_image_linkto = get_post_meta( $arrK[ 0 ], '<span style="color: #ff0000;">_my_field</span>', true );
        // ...
}
?&gt;
</code>
</pre>
<p>Once you have required information, do whatever is necessary with it. That&#8217;s all folks, hopefully you&#8217;ve go the point!</p>
]]></content:encoded>
			<wfw:commentRss>http://rider.sofarider.com/wordpress-tips-and-tricks/extra-input-field-to-add-an-image-panel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How does pre_get_posts work?</title>
		<link>http://rider.sofarider.com/wordpress-tips-and-tricks/how-does-pre_get_posts-work/</link>
		<comments>http://rider.sofarider.com/wordpress-tips-and-tricks/how-does-pre_get_posts-work/#comments</comments>
		<pubDate>Fri, 17 Sep 2010 11:36:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WordPress Tips and Tricks]]></category>
		<category><![CDATA[custom query]]></category>
		<category><![CDATA[custom search results]]></category>
		<category><![CDATA[intercept query]]></category>
		<category><![CDATA[pre_get_posts]]></category>

		<guid isPermaLink="false">http://rider.sofarider.com/?p=46</guid>
		<description><![CDATA[In case you need to modify $wp_query object for some reason it&#8217;s good idea to use &#8220;pre_get_posts&#8221; filter. Maybe it will sound better if I say that you can easily intercept $wp_query before any results are returned. I guess you wonder how that can be so useful but &#8211; believe it or not &#8211; possibilities <a href="http://rider.sofarider.com/wordpress-tips-and-tricks/how-does-pre_get_posts-work/" class="more-link">READ MORE</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/intercept-274x150.jpg" alt="pre_get_posts" title="pre_get_posts" width="274" height="150" class="alignnone size-thumbnail wp-image-47" />In case you need to modify $wp_query object for some reason it&#8217;s good idea to use &#8220;pre_get_posts&#8221; filter. Maybe it will sound better if I say that you can easily intercept $wp_query before any results are returned. I guess you wonder how that can be so useful but &#8211; believe it or not &#8211; possibilities are literally endless!<br />
Let&#8217;s say you want to simply exclude Pages from search results:</p>
<pre>
<code>
&lt;?php
function filter_search_rez( $query ) {
    if ( $query->is_search ) $query->set( 'post_type', 'post' );
    return $query;
}
add_filter( 'pre_get_posts', 'filter_search_rez' );
?&gt;
</code>
</pre>
<p>Now you gonna say that&#8217;s stupid because I could simply achieve the same by using<br />
<strong>query_posts( &#8216;post_type=post&#8217; )</strong>.<br />
Is your pagination still working? The point is that filters are applied to information read from the database, prior to displaying on a page.</p>
<h2>Where to paste the above code?</h2>
<p>If your WP theme doesn&#8217;t contain &#8220;functions.php&#8221; file &#8211; create one and simply paste. Otherwise use existing &#8220;functions.php&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://rider.sofarider.com/wordpress-tips-and-tricks/how-does-pre_get_posts-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP Theme released: Sofa Shoppr</title>
		<link>http://rider.sofarider.com/wordpress-themes/sofa-shoppr/</link>
		<comments>http://rider.sofarider.com/wordpress-themes/sofa-shoppr/#comments</comments>
		<pubDate>Mon, 13 Sep 2010 10:17:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WordPress Themes]]></category>
		<category><![CDATA[sofa shoppr]]></category>
		<category><![CDATA[wordpress e-commerce]]></category>
		<category><![CDATA[wordpress e-shop theme]]></category>
		<category><![CDATA[wordpress store]]></category>
		<category><![CDATA[wordpress webshop theme]]></category>

		<guid isPermaLink="false">http://rider.sofarider.com/?p=14</guid>
		<description><![CDATA[Sofa Shoppr is WordPress based webshop (e-commerce) theme. It works in conjunction with PayPal payment gateway which means that users can safely checkout either by using their own PayPal account or a credit card. Beside the fact that this theme is extremely easy to setup and maintain, it does include all of WP 3.0+ features, <a href="http://rider.sofarider.com/wordpress-themes/sofa-shoppr/" class="more-link">READ MORE</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://rider.sofarider.com/wp-content/uploads/2010/09/1_promo.png"><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/1_promo-274x150.png" alt="sofa shoppr splash screen" title="sofa shoppr splash screen" width="274" height="150" class="alignnone size-thumbnail wp-image-26" /></a>Sofa Shoppr is WordPress based webshop (e-commerce) theme. It works in conjunction with PayPal payment gateway which means that users can safely checkout either by using their own PayPal account or a credit card. Beside the fact that this theme is extremely easy to setup and maintain, it does include all of WP 3.0+ features, built-in widgets, advanced layout control, user reviews and an ample Options page through which all the crucial sections of your future webshop are settable.<br />
Another cool thing is a featured products banner rotator – Piecemaker (Adobe Flash app), fully integrated into system. Webshop owner can simply upload all the slides through WP Admin panel and set all of Piecemaker variables via theme Options page so no need to edit XML file or upload slides by using FTP client. On top of that, each banner can be linked to a certain/featured product page – if needed.<br />
You can select between 3 different layouts for your webshop Home Page; it can consist of Widgets only, it can be a grid of listed products (no sidebar) or a combo of grid and sidebar. Both grids may optionally be mixed with Widgets too which is another great feature – you can literally create your own layouts.<br />
There&#8217;s plenty more but I guess you&#8217;ll discover on your own as soon as you install Sofa Shoppr.</p>
<h2>Features Summary</h2>
<ul>
<li>WP 3.0 + compliant</li>
<li>Support for Background and Menus</li>
<li>8 built-in Widgets</li>
<li>Multi-level drop-down navigation</li>
<li>Fully implemented Piecemaker banner rotator</li>
<li>Switchable layouts</li>
<li>Orders tracking</li>
<li>Localization file included</li>
<li>Entirely settable via theme Options page</li>
<li>Complete webshop + PayPal solution</li>
</ul>
<h2>Interested in reading manuals before purchase?</h2>
<p>You can download Sofa Shoppr manuals and have a look how easy is to setup and maintain this theme:<br />
<a href='http://rider.sofarider.com/wp-content/uploads/2010/09/sof_shoppr_manuals.zip'>Sofa Shoppr Theme Manuals</a></p>
<h2>Do you want to install entire Sofa Shoppr demo site locally?</h2>
<p>Download this mini guide and find out how to literally make a copy of Sofa Shoppr demo site on your local machine:<br />
<a href='http://rider.sofarider.com/wp-content/uploads/2010/09/shoppr_install_demo.zip'>How to run demo site locally</a></p>
<h2>Where to buy?</h2>
<p>This theme can be purchased from <a href="http://themeforest.net/item/sofa-shoppr-wp30-webshop-theme/124473">Themeforest</a> only!</p>
<h2>Screenshots</h2>
<p><a href="http://rider.sofarider.com/wp-content/uploads/2010/09/2_home.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/2_home-274x150.jpg" alt="sofa shoppr home page" title="sofa shoppr home page" width="274" height="150" class="alignnone size-thumbnail wp-image-30" /></a><a href="http://rider.sofarider.com/wp-content/uploads/2010/09/3_category.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/3_category-274x150.jpg" alt="sofa shoppr category page" title="sofa shoppr category page" width="274" height="150" class="alignnone size-thumbnail wp-image-31" /></a><a href="http://rider.sofarider.com/wp-content/uploads/2010/09/4_checkout.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/4_checkout-274x150.jpg" alt="sofa shoppr checkout page" title="sofa shoppr checkout page" width="274" height="150" class="alignnone size-thumbnail wp-image-32" /></a><a href="http://rider.sofarider.com/wp-content/uploads/2010/09/5_orders.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/5_orders-274x150.jpg" alt="sofa shoppr admin orders overview" title="sofa shoppr admin orders overview" width="274" height="150" class="alignnone size-thumbnail wp-image-37" /></a><a href="http://rider.sofarider.com/wp-content/uploads/2010/09/6_additem.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/6_additem-274x150.jpg" alt="add to basket screen" title="add to basket screen" width="274" height="150" class="alignnone size-thumbnail wp-image-34" /></a><a href="http://rider.sofarider.com/wp-content/uploads/2010/09/7_optionsone.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/7_optionsone-274x150.jpg" alt="theme options page 1" title="theme options page 1" width="274" height="150" class="alignnone size-thumbnail wp-image-35" /></a><a href="http://rider.sofarider.com/wp-content/uploads/2010/09/8_optionstwo.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/8_optionstwo-274x150.jpg" alt="theme options page 2" title="theme options page 2" width="274" height="150" class="alignnone size-thumbnail wp-image-29" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://rider.sofarider.com/wordpress-themes/sofa-shoppr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP Theme released: Sofa Memento</title>
		<link>http://rider.sofarider.com/wordpress-themes/wp-theme-sofa-memento/</link>
		<comments>http://rider.sofarider.com/wordpress-themes/wp-theme-sofa-memento/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 05:43:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WordPress Themes]]></category>
		<category><![CDATA[custom templates]]></category>
		<category><![CDATA[custom widgets]]></category>
		<category><![CDATA[featured content slider]]></category>
		<category><![CDATA[sofa memento]]></category>
		<category><![CDATA[theme options]]></category>
		<category><![CDATA[wordpress blog theme]]></category>

		<guid isPermaLink="false">http://rider.sofarider.com/?p=78</guid>
		<description><![CDATA[Sofa Memento is powerful Blog theme made for all the bloggers who want to run their site quick and simply. It comes with 7 built-in Widgets for a kick-start: Sectional Navigation, Twitter, Flickr, Search, Archives, 125x125px Advertising slots and Tag Cloud. All of them are multi-widgets (can be added more than once in the same <a href="http://rider.sofarider.com/wordpress-themes/wp-theme-sofa-memento/" class="more-link">READ MORE</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://rider.sofarider.com/wp-content/uploads/2010/09/1_promo1.png"><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/1_promo1-274x150.png" alt="sofa memento splash screen" title="sofa memento splash screen" width="274" height="150" class="alignnone size-thumbnail wp-image-80" /></a>Sofa Memento is powerful Blog theme made for all the bloggers who want to run their site quick and simply. It comes with 7 built-in Widgets for a kick-start: Sectional Navigation, Twitter, Flickr, Search, Archives, 125x125px Advertising slots and Tag Cloud. All of them are multi-widgets (can be added more than once in the same sidebar) supposed to be used across 6 widget-ready sidebars. Sofa Memento is WordPress 3.0+ compliant and relies on new features brought by the latest release of WP; Menus, Background, Custom Header and new widget architecture. On top of that, more options are added to Theme settings page in order to extend functionality as much as possible. You can set up this theme in just a few minutes and start blogging immediately.</p>
<h2>Features Summary</h2>
<ul>
<li>Made for WordPress 3.0+ only</li>
<li>Support for Header, Background and Menus</li>
<li>7 built-in Widgets: Sectional Navigation, Twitter, Flickr, Archives,125x125px Advertising, Custom Tag Cloud and Search</li>
<li>Multi-level drop-down navigation</li>
<li>jQuery featured content slider</li>
<li>2 custom templates: Contact and Full Width</li>
<li>Localization file included</li>
<li>Added Theme Options for more control and flexibility</li>
</ul>
<h2>Where to buy?</h2>
<p>This theme can be purchased from <a href="http://themeforest.net/item/sofa-memento/112447">Themeforest</a> only!</p>
<h2>Screenshots</h2>
<p><a href="http://rider.sofarider.com/wp-content/uploads/2010/09/2_home1.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/2_home1-274x150.jpg" alt="sofa memento home page" title="sofa memento home page" width="274" height="150" class="alignnone size-thumbnail wp-image-81" /></a><a href="http://rider.sofarider.com/wp-content/uploads/2010/09/3_page.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/3_page-274x150.jpg" alt="sofa memento inner page" title="sofa memento inner page" width="274" height="150" class="alignnone size-thumbnail wp-image-82" /></a><a href="http://rider.sofarider.com/wp-content/uploads/2010/09/4_contact.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/4_contact-274x150.jpg" alt="sofa memento contact page" title="sofa memento contact page" width="274" height="150" class="alignnone size-thumbnail wp-image-83" /></a><a href="http://rider.sofarider.com/wp-content/uploads/2010/09/5_fullwidth.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/5_fullwidth-274x150.jpg" alt="sofa memento full width custom template" title="sofa memento full width custom template" width="274" height="150" class="alignnone size-thumbnail wp-image-84" /></a><a href="http://rider.sofarider.com/wp-content/uploads/2010/09/6_search.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/6_search-274x150.jpg" alt="sofa memento search results" title="sofa memento search results" width="274" height="150" class="alignnone size-thumbnail wp-image-85" /></a><a href="http://rider.sofarider.com/wp-content/uploads/2010/09/7_single.jpg"><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/7_single-274x150.jpg" alt="sofa memento single view" title="sofa memento single view" width="274" height="150" class="alignnone size-thumbnail wp-image-79" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://rider.sofarider.com/wordpress-themes/wp-theme-sofa-memento/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP Theme released: Sofa Yellooh!</title>
		<link>http://rider.sofarider.com/wordpress-themes/wp-theme-released-sofa-yellooh/</link>
		<comments>http://rider.sofarider.com/wordpress-themes/wp-theme-released-sofa-yellooh/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 12:18:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WordPress Themes]]></category>
		<category><![CDATA[deposit system]]></category>
		<category><![CDATA[wordpress payed entry]]></category>
		<category><![CDATA[wp classified ads]]></category>

		<guid isPermaLink="false">http://rider.sofarider.com/?p=109</guid>
		<description><![CDATA[SOFA Yellooh! is really powerful classified adds (aka Yellow Pages) WordPress theme. It has built-in Deposit system which means that site Admin may charge site users for adding Entries. However, it&#8217;s not a must; site Admin has an option to charge for adding Entries or not. Good thing is: Entries are added from front-end and <a href="http://rider.sofarider.com/wordpress-themes/wp-theme-released-sofa-yellooh/" class="more-link">READ MORE</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/1_promo2-274x150.png" alt="Sofa Yellooh! promo" title="Sofa Yellooh! promo" width="274" height="150" class="alignnone size-thumbnail wp-image-110" />SOFA Yellooh! is really powerful classified adds (aka Yellow Pages) WordPress theme. It has built-in Deposit system which means that site Admin may charge site users for adding Entries. However, it&#8217;s not a must; site Admin has an option to charge for adding Entries or not. Good thing is: Entries are added from front-end and site users are never taken to Admin area (back-end).<br />
Theme Options page will help site Admin to easily set an Entry price, currency, Entry life time, enable or disable Entry edit and auto-publish, allow or disallow GoogleMaps, enable only certain file type upload, and many, many, many more!<br />
In order to add new Entry site users must be registered first. This theme has fully custom login, register and/or password recovery panel too. Beside adding new, users will be able to EDIT, DELETE and RENEW Entries from their account page.<br />
This is another Sofarider theme built for <strong>small business</strong>. Possibilities are endless; it&#8217;s up to you to bring some great idea to life and start making profit. My goal was to create a powerful tool based on previous experience with Sofa YellowPress and Sofa WPClassifieds themes. Of course, all of this theme new &#8216;features&#8217; are actually result of user suggestions related to two previous, similar themes.</p>
<h2>Features summary</h2>
<ul>
<li>Users ad new Entry via front-end</li>
<li>Users can edit, renew and delete entries via front-end</li>
<li>Full support for GoogleMaps</li>
<li>Built-in Deposit System</li>
<li>Built-in PayPal with transaction validation</li>
<li>Custom Login-Register-Password Recovery panel</li>
<li>Dual tech images slider; easy switch between Flash and jQuery from theme Options page</li>
<li>Manage images slider photos straight from Admin panel</li>
<li>Ready-made Contact form</li>
<li>Extensible via Pluggers system</li>
<li>Fully translatable via PO file (Gettext Portable Object)</li>
<li>Multi-level drop-down navigation</li>
<li>Completely managable thru theme Options</li>
<li>+ many, many more</li>
</ul>
<h2>Where to buy?</h2>
<p>This theme can be purchased from <a href="http://themeforest.net/item/sofa-yellooh-wp-yellowpges/98307">Themeforest</a> only!</p>
]]></content:encoded>
			<wfw:commentRss>http://rider.sofarider.com/wordpress-themes/wp-theme-released-sofa-yellooh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP theme released: Sofa Stockphoto</title>
		<link>http://rider.sofarider.com/wordpress-themes/wp-theme-released-sofa-stockphoto/</link>
		<comments>http://rider.sofarider.com/wordpress-themes/wp-theme-released-sofa-stockphoto/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 11:16:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[WordPress Themes]]></category>
		<category><![CDATA[wordpress deposit system]]></category>
		<category><![CDATA[wordpress e-commerce]]></category>
		<category><![CDATA[wordpress stockphoto theme]]></category>
		<category><![CDATA[wordpress webshop theme]]></category>

		<guid isPermaLink="false">http://rider.sofarider.com/?p=132</guid>
		<description><![CDATA[SOFA Stockphoto theme is definitely not made for one purpose only – as you can read in title. It has been made to enable users to sell any type of intangible (digital) goods. Stockphoto sale is only one practical example of its usage. Just imagine what else you could sell&#8230;logos, website templates, WordPress themes, illustrations, <a href="http://rider.sofarider.com/wordpress-themes/wp-theme-released-sofa-stockphoto/" class="more-link">READ MORE</a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://rider.sofarider.com/wp-content/uploads/2010/09/promo_stockphoto-274x150.png" alt="" title="promo_stockphoto" width="274" height="150" class="alignnone size-thumbnail wp-image-133" />SOFA Stockphoto theme is definitely not made for one purpose only – as you can read in title. It has been made to enable users to sell any type of intangible (digital) goods. Stockphoto sale is only one practical example of its usage. Just imagine what else you could sell&#8230;logos, website templates, WordPress themes, illustrations, code, audio files, applications, images, fonts, 3D models, etc., etc. Possibilities are endless!<br />
This theme is your own, private marketplace! It has built-in Deposit system and works with any PayPal business account. Deposit system enable users to purchase certain amount of credits which can be used on your site to buy digital goods.<br />
My goal was to develop a theme which will help people make some extra dough. I bet many photographers, designers or programmers will benefit from selling their work which was rejected by client and buried somewhere on hard drive!</p>
<h2>Features summary</h2>
<ul>
<li>Built-in fully functional Deposit System</li>
<li>Built-in PayPal with transaction validation</li>
<li>Custom Login-Register-Password Recovery panel</li>
<li>Dual tech images slider; easy switch between Flash and jQuery from theme Options page</li>
<li>Manage images slider photos straight from Admin panel</li>
<li>Ready-made Contact form</li>
<li>Extensible via Pluggers system</li>
<li>Fully translatable from theme Options</li>
<li>Multi-level drop-down navigation</li>
<li>Completely managable thru theme Options</li>
<li>+ many, many more</li>
</ul>
<h2>Where to buy?</h2>
<p>This theme can be purchased from <a href="http://themeforest.net/item/sofa-stockphoto-wp-shop-with-deposit-system/90978">Themeforest</a> only!</p>
]]></content:encoded>
			<wfw:commentRss>http://rider.sofarider.com/wordpress-themes/wp-theme-released-sofa-stockphoto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

