﻿





<?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>INN823.com &#187; 探讨</title>
	<atom:link href="http://www.inn823.com/category/discuss/feed" rel="self" type="application/rss+xml" />
	<link>http://www.inn823.com</link>
	<description>发现可能！</description>
	<lastBuildDate>Tue, 27 Jul 2010 11:14:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>zh</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>使用 CSS3 实现圆角效果</title>
		<link>http://www.inn823.com/2010/07/591</link>
		<comments>http://www.inn823.com/2010/07/591#comments</comments>
		<pubDate>Tue, 27 Jul 2010 11:10:44 +0000</pubDate>
		<dc:creator>weweloo</dc:creator>
				<category><![CDATA[探讨]]></category>

		<guid isPermaLink="false">http://www.inn823.com/?p=591</guid>
		<description><![CDATA[W3C 很早就制订了实现了 CSS 圆角的 CSS3 属性：border-radius，Firefox 和 Safari 也通过私有属性实现了该功能：
代码非常简单：
&#60;div style=&#8221; background-color: #ccc; -moz-border-radius: 5px;  -webkit-border-radius: 5px; border: 1px solid #000; padding: 10px;&#8221; &#62;Firefox 和 Safari 实现圆角&#60;/div&#62;
http://www.dabaoku.com/jiaocheng/wangye/css/200911173576.shtml
]]></description>
			<content:encoded><![CDATA[<p>W3C 很早就制订了实现了 CSS 圆角的 CSS3 属性：border-radius，Firefox 和 Safari 也通过私有属性实现了该功能：</p>
<p>代码非常简单：</p>
<blockquote><p>&lt;div style=&#8221; background-color: #ccc; -moz-border-radius: 5px;  -webkit-border-radius: 5px; border: 1px solid #000; padding: 10px;&#8221; &gt;Firefox 和 Safari 实现圆角&lt;/div&gt;</p></blockquote>
<p>http://www.dabaoku.com/jiaocheng/wangye/css/200911173576.shtml</p>
]]></content:encoded>
			<wfw:commentRss>http://www.inn823.com/2010/07/591/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>去掉页面中点击链接留下的虚线框</title>
		<link>http://www.inn823.com/2010/07/582</link>
		<comments>http://www.inn823.com/2010/07/582#comments</comments>
		<pubDate>Thu, 22 Jul 2010 14:51:31 +0000</pubDate>
		<dc:creator>weweloo</dc:creator>
				<category><![CDATA[探讨]]></category>

		<guid isPermaLink="false">http://www.inn823.com/?p=582</guid>
		<description><![CDATA[进一步了解一下点击链接产生的虚线框，其实就是 CSS 中的 outline 属性，这也说明 IE 和 Firefox 对于 outline 和 border 的解析范围并不一致：IE 认为虚线框就是border的边缘，而 Firefox 则认为虚线框应该是文字范围。 ]]></description>
			<content:encoded><![CDATA[<p>以前都不知道有这样一个功能,又一次看别人网站时发现了那网站里的链接点击后都没有虚线,觉得这样蛮好的,感觉很干净和精致,所以就网上找了些资料测试,还真有效,测试通过了IE8,FF,Chrome浏览器,不过IE6的还没测试,自己也没有电脑装有IE6.</p>
<p>方法一：定义样式outline:none即可，但此法只适应于FF，IE不支持，在IE 下可使用其私有的html属性：hideFoucs，在标签的结构中加入 hidefocus=”true” 属性。</p>
<blockquote><p>&lt;a href=&#8221;#&#8221; hidefocus=&#8221;true&#8221;&gt; 这里放置您需要的文字或图片&lt;/a&gt;</p></blockquote>
<p>方法二：针对于IE</p>
<blockquote><p>.HideFocus {<br />
hide-focus: expression(this.hideFocus=true);  /* for ie 5+ */<br />
outline: none;  /* for firefox 1.5 + */}</p></blockquote>
<p>但是expression性能极差，如果不是特别需求，全部页面链接点击所产生的虚线框都必须去掉，尽量不要用这种方法。</p>
<p>进一步了解一下点击链接产生的虚线框，其实就是 CSS 中的 outline 属性，这也说明 IE 和 Firefox 对于 outline 和 border 的解析范围并不一致：IE 认为虚线框就是border的边缘，而 Firefox 则认为虚线框应该是文字范围。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.inn823.com/2010/07/582/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用jQuery实现WordPress博客图片延迟加载</title>
		<link>http://www.inn823.com/2010/07/577</link>
		<comments>http://www.inn823.com/2010/07/577#comments</comments>
		<pubDate>Thu, 15 Jul 2010 08:08:42 +0000</pubDate>
		<dc:creator>weweloo</dc:creator>
				<category><![CDATA[探讨]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[函数]]></category>

		<guid isPermaLink="false">http://www.inn823.com/2010/07/577</guid>
		<description><![CDATA[当我们浏览图片比较多的博客时，如果发现下拉滚动条图片才加载（图片延迟加载），这应该是一个很酷的用户体验。]]></description>
			<content:encoded><![CDATA[<p>当我们浏览图片比较多的博客时，如果发现下拉滚动条图片才加载（图片延迟加载），这应该是一个很酷的用户体验。这一效果是通过jQuery插件实现的。所谓的jQuery插件就是用JavaScript编写的一段Js文件。通过加载这一插件，我们能够实现长页面中图片延迟加载的效果，也就是在浏览器可视区域外的图片不会被载入，直至将页面滚动到可视区域才加载相应图片。 使用这个插件可以加速载入包含有很多图片的文章。浏览器将会在加载可见图片之后进入就绪状态。在某些情况下还可以降低服务器负担.</p>
<p>实现这一效果的jQuery插件叫做：lazyload</p>
<p>如果不想使用插件，可以将函数嵌入主题模板中，方法如下。</p>
<p>1.下载lazyload.js并上传到主题相应的目录中</p>
<p>2.在header.php文件&lt;/head&gt;标签前（最好在&lt;?php wp_head(); ?&gt;语句前）添加如下代码：</p>
<blockquote><p>&lt;script type=”text/javascript” src=”http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js”&gt;&lt;/script&gt;<br />
&lt;script type=”text/javascript” src=”&lt;?php bloginfo(‘template_directory’);?&gt;/js/jquery.lazyload.js”&gt;&lt;/script&gt;<br />
&lt;script type=”text/javascript”&gt;<br />
$(function() {<br />
$(“img”).lazyload({<br />
placeholder : “&lt;?php bloginfo(‘template_directory’);?&gt;/images/grey.gif”,<br />
effect : “fadeIn”<br />
});<br />
});<br />
&lt;/script&gt;</p></blockquote>
<p>第1行市说明调用jQuery库</p>
<p>第2行是说明lazyload.js文件的载入位置，&lt;?php bloginfo(‘template_directory’);?&gt;是调用相应主题路径的语句。</p>
<p>第5行img是延迟加载所有图片，可根据实际情况更改，有时候我们并不想将侧边栏的留言者的头像延迟加载，而只是要实现文章中的图片使用该效果，则根据实际情况修改相应的img语句即可，比如#post img</p>
<p>第6行语句是在图片加载前先用一个透明的灰色1×1像素的图片进行占位。</p>
<p>第7行是实现图片“淡入”的效果</p>
<p>当然上述只是我目前网页中的实现效果，它其他可用的效果还有很多，我就简略说一下：</p>
<p>1.当图片没有看到之前先把图片载入200像素（不设置的话，默认载入像素是零）</p>
<blockquote><p>$(“img”).lazyload({ threshold : 200 });</p></blockquote>
<p>2.在图片加载前先用一个透明的灰色1×1像素的图片进行占位</p>
<blockquote><p>$(“img”).lazyload({ placeholder : “img/grey.gif” });</p></blockquote>
<p>3.自定义触发事件进行载入：比如“click”（鼠标点击）和”mouseover”(鼠标滑过)等事件触发加载图片，使用自定义的事件, 如: sporty 和 foobar；默认情况下处于等待状态, 直到用户滚动到窗口上图片所在位置。 在灰色占位图片被点击之前阻止加载图片：</p>
<blockquote><p>$(“img”).lazyload({<br />
placeholder : “img/grey.gif”,<br />
event : “click”<br />
});</p></blockquote>
<p>4.通过定义effect 参数来定义一些图片显示效果，比如fadeIn</p>
<blockquote><p>$(“img”).lazyload({<br />
placeholder : “img/grey.gif”,<br />
effect : “fadeIn”<br />
});</p></blockquote>
<p>5.图片在容器内显示：可以将插件用在可滚动容器的图片上, 例如带滚动条的 DIV 元素. 你要做的只是将容器定义为 jQuery 对象.</p>
<p>CSS文件中：</p>
<blockquote><p>#container {<br />
height: 600px;<br />
overflow: scroll;<br />
}</p></blockquote>
<p>JavaScript 代码：</p>
<blockquote><p>$(“img”).lazyload({<br />
placeholder : “img/grey.gif”,<br />
container: $(“#container”)<br />
});</p></blockquote>
<p>6.当图片不连续时：当图片不是连续排列，我们滚动页面的时候，lazy load会循环加载图片。在循环加载中，它会检查图片是否在可见区域内，默认情况是在找到第一张不在可视区域内的图片后，会停止循环。图片被认为是流式分布的, 图片在页面中的次序和 HTML 代码中次序相同. 但是在一些布局中, 这样的假设是不成立的. 不过你可以通过 failurelimit 选项来控制加载行为.</p>
<blockquote><p>$(“img”).lazyload({<br />
failurelimit : 10<br />
});</p></blockquote>
<p>设定failurelimint参数为10，它会当载入10张照片之后，停止寻找图片载入；</p>
<p>7.延迟载入图片：Lazy Load 插件的一个不完整的功能, 但是这也能用来实现图片的延迟加载. 下面的代码实现了页面加载完成后再加载. 页面加载完成 5 秒后, 指定区域内的图片会自动进行加载.</p>
<blockquote><p>$(function() {<br />
$(“img:below-the-fold”).lazyload({<br />
placeholder : “img/grey.gif”,<br />
event : “sporty”<br />
});<br />
});<br />
$(window).bind(“load”, function() {<br />
var timeout = setTimeout(function() {$(“img”).trigger(“sporty”)}, 5000);<br />
});</p></blockquote>
<p>具体文章参见《<a title="Lazy Load Plugin for jQuery" href="http://www.appelsiini.net/projects/lazyload" target="_self">Lazy Load Plugin for jQuery</a>》</p>
]]></content:encoded>
			<wfw:commentRss>http://www.inn823.com/2010/07/577/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>给WordPress主题创建内置联系表单</title>
		<link>http://www.inn823.com/2010/06/564</link>
		<comments>http://www.inn823.com/2010/06/564#comments</comments>
		<pubDate>Tue, 29 Jun 2010 03:52:05 +0000</pubDate>
		<dc:creator>weweloo</dc:creator>
				<category><![CDATA[探讨]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[函数]]></category>
		<category><![CDATA[联系]]></category>

		<guid isPermaLink="false">http://www.inn823.com/?p=564</guid>
		<description><![CDATA[网上有很多WordPress插件可以给你的博客添加联系表单，但其实并不一定要插件才能实现，这篇教程就将向大家显示如何给WordPress主题创建一个内置的联系表单。]]></description>
			<content:encoded><![CDATA[<p>网上有很多WordPress插件可以给你的博客添加联系表单，但其实并不一定要插件才能实现，这篇教程就将向大家显示如何给WordPress主题创建一个内置的联系表单。</p>
<h3>步骤一: 创建页面模板</h3>
<p>当然第一步是要创建一个页面模板。先创建一个 <strong>page-contact.php </strong>的文件，然后将 <strong>page.php</strong> 文件里的代码复制到这个新建的文件里。</p>
<p>为了确保WordPress能够将它当作一个页面模板来看待，我们需要在 contact.php文件的开头添加下面的注释</p>
<blockquote><p>&lt;?php<br />
/*<br />
Template Name: Contact<br />
*/<br />
?&gt;</p></blockquote>
<p>也就是说contact.php文件应该是下面这样子的:</p>
<blockquote><p>&lt;?php<br />
/*<br />
Template Name: Contact<br />
*/<br />
?&gt;<br />
&lt;?php get_header() ?&gt;<br />
&lt;div id=&#8221;container&#8221;&gt;<br />
&lt;div id=&#8221;content&#8221;&gt;<br />
&lt;?php the_post() ?&gt;<br />
&lt;div id=&#8221;post-&lt;?php the_ID() ?&gt;&#8221;&gt;<br />
&lt;div&gt;<br />
&lt;/div&gt;&lt;!&#8211; .entry-content -&gt;<br />
&lt;/div&gt;&lt;!&#8211; .post&#8211;&gt;&lt;/div&gt;<br />
&lt;!&#8211; #content &#8211;&gt;<br />
&lt;/div&gt;&lt;!&#8211; #container &#8211;&gt;<br />
&lt;?php get_sidebar() ?&gt;<br />
&lt;?php get_footer() ?&gt;</p></blockquote>
<h3>步骤二: 创建表单</h3>
<p>现在，我们需要创建一个简单的联系表单，只要将下面的代码粘贴到 entry-content div内部即可。</p>
<blockquote><p>&lt;form action=&#8221;&lt;?php the_permalink(); ?&gt;&#8221; id=&#8221;contactForm&#8221; method=&#8221;post&#8221;&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;<br />
&lt;label for=&#8221;contactName&#8221;&gt;Name:&lt;/label&gt;<br />
&lt;input type=&#8221;text&#8221; name=&#8221;contactName&#8221; id=&#8221;contactName&#8221; value=&#8221;" /&gt;<br />
&lt;/li&gt;<br />
&lt;li&gt;<br />
&lt;label for=&#8221;email&#8221;&gt;Email&lt;/label&gt;<br />
&lt;input type=&#8221;text&#8221; name=&#8221;email&#8221; id=&#8221;email&#8221; value=&#8221;" /&gt;<br />
&lt;/li&gt;<br />
&lt;li&gt;<br />
&lt;label for=&#8221;commentsText&#8221;&gt;Message:&lt;/label&gt;<br />
&lt;textarea name=&#8221;comments&#8221; id=&#8221;commentsText&#8221; rows=&#8221;20&#8243; cols=&#8221;30&#8243;&gt;&lt;/textarea&gt;<br />
&lt;/li&gt;<br />
&lt;li&gt;<br />
&lt;button type=&#8221;submit&#8221;&gt;Send email&lt;/button&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;input type=&#8221;hidden&#8221; name=&#8221;submitted&#8221; id=&#8221;submitted&#8221; value=&#8221;true&#8221; /&gt;</p>
<p>&lt;/form&gt;</p></blockquote>
<p>这个html代码相当明了，不过要注意下第19行的 input type=”hidden”，我们后面会用它来检查表单是否提交。</p>
<h3>步骤三: 数据的处理和错误的应对</h3>
<p>表单看起来已经不错了，但是此刻它仍然是无效的因为它没有发送任何邮件。我们需要做的是验证表单是否提交，然后再验证表单的字段填写是否正确。</p>
<p>如果填写都是正确的，就会收到博客管理员的邮件并向他们发送邮件。否则，就无法发送邮件，错误提示就会显示给用户。</p>
<p>将下面的代码粘贴在页面模板声明和get_header()函数之间：</p>
<blockquote><p>&lt;?php<br />
if(isset($_POST['submitted'])) {<br />
if(trim($_POST['contactName']) === &#8221;) {<br />
$nameError = &#8216;Please enter your name.&#8217;;<br />
$hasError = true;<br />
} else {<br />
$name = trim($_POST['contactName']);<br />
}</p>
<p>if(trim($_POST['email']) === &#8221;) {<br />
$emailError = &#8216;Please enter your email address.&#8217;;<br />
$hasError = true;<br />
} else if (!eregi(&#8220;^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$&#8221;, trim($_POST['email']))) {<br />
$emailError = &#8216;You entered an invalid email address.&#8217;;<br />
$hasError = true;<br />
} else {<br />
$email = trim($_POST['email']);<br />
}</p>
<p>if(trim($_POST['comments']) === &#8221;) {<br />
$commentError = &#8216;Please enter a message.&#8217;;<br />
$hasError = true;<br />
} else {<br />
if(function_exists(&#8217;stripslashes&#8217;)) {<br />
$comments = stripslashes(trim($_POST['comments']));<br />
} else {<br />
$comments = trim($_POST['comments']);<br />
}<br />
}</p>
<p>if(!isset($hasError)) {<br />
$emailTo = get_option(&#8216;tz_email&#8217;);<br />
if (!isset($emailTo) || ($emailTo == &#8221;) ){<br />
$emailTo = get_option(&#8216;admin_email&#8217;);<br />
}<br />
$subject = &#8216;[PHP Snippets] From &#8216;.$name;<br />
$body = &#8220;Name: $name \n\nEmail: $email \n\nComments: $comments&#8221;;<br />
$headers = &#8216;From: &#8216;.$name.&#8217; &lt;&#8217;.$emailTo.&#8217;&gt;&#8217; . &#8220;\r\n&#8221; . &#8216;Reply-To: &#8216; . $email;</p>
<p>mail($emailTo, $subject, $body, $headers);<br />
$emailSent = true;<br />
}}<br />
?&gt;</p></blockquote>
<p>这段代码确认表单是否提交，是否正确填写。如果发生错误，比如，一个字段是空的，或者邮箱地址不正确，就会返回错误提示的信息，表单就无法提交。</p>
<p>接着就是显示错误提示的信息，例如，“请输入你的姓名”。 下面是完整的表单页面模板，如果喜欢的话你可以原封不动地使用。</p>
<blockquote><p>&lt;?php<br />
/*<br />
Template Name: Contact<br />
*/<br />
?&gt;</p>
<p>&lt;?php<br />
if(isset($_POST['submitted'])) {<br />
if(trim($_POST['contactName']) === &#8221;) {<br />
$nameError = &#8216;Please enter your name.&#8217;;<br />
$hasError = true;<br />
} else {<br />
$name = trim($_POST['contactName']);<br />
}</p>
<p>if(trim($_POST['email']) === &#8221;) {<br />
$emailError = &#8216;Please enter your email address.&#8217;;<br />
$hasError = true;<br />
} else if (!eregi(&#8220;^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,4}$&#8221;, trim($_POST['email']))) {<br />
$emailError = &#8216;You entered an invalid email address.&#8217;;<br />
$hasError = true;<br />
} else {<br />
$email = trim($_POST['email']);<br />
}</p>
<p>if(trim($_POST['comments']) === &#8221;) {<br />
$commentError = &#8216;Please enter a message.&#8217;;<br />
$hasError = true;<br />
} else {<br />
if(function_exists(&#8217;stripslashes&#8217;)) {<br />
$comments = stripslashes(trim($_POST['comments']));<br />
} else {<br />
$comments = trim($_POST['comments']);<br />
}<br />
}</p>
<p>if(!isset($hasError)) {<br />
$emailTo = get_option(&#8216;tz_email&#8217;);<br />
if (!isset($emailTo) || ($emailTo == &#8221;) ){<br />
$emailTo = get_option(&#8216;admin_email&#8217;);<br />
}<br />
$subject = &#8216;[PHP Snippets] From &#8216;.$name;<br />
$body = &#8220;Name: $name \n\nEmail: $email \n\nComments: $comments&#8221;;<br />
$headers = &#8216;From: &#8216;.$name.&#8217; &lt;&#8217;.$emailTo.&#8217;&gt;&#8217; . &#8220;\r\n&#8221; . &#8216;Reply-To: &#8216; . $email;</p>
<p>mail($emailTo, $subject, $body, $headers);<br />
$emailSent = true;<br />
}</p>
<p>} ?&gt;<br />
&lt;?php get_header(); ?&gt;<br />
&lt;div id=&#8221;container&#8221;&gt;<br />
&lt;div id=&#8221;content&#8221;&gt;</p>
<p>&lt;?php if (have_posts()) : while (have_posts()) : the_post(); ?&gt;<br />
&lt;div &lt;?php post_class() ?&gt; id=&#8221;post-&lt;?php the_ID(); ?&gt;&#8221;&gt;<br />
&lt;h1&gt;&lt;?php the_title(); ?&gt;&lt;/h1&gt;<br />
&lt;div&gt;<br />
&lt;?php if(isset($emailSent) &amp;&amp; $emailSent == true) { ?&gt;<br />
&lt;div&gt;<br />
&lt;p&gt;Thanks, your email was sent successfully.&lt;/p&gt;<br />
&lt;/div&gt;<br />
&lt;?php } else { ?&gt;<br />
&lt;?php the_content(); ?&gt;<br />
&lt;?php if(isset($hasError) || isset($captchaError)) { ?&gt;<br />
&lt;p&gt;Sorry, an error occured.&lt;p&gt;<br />
&lt;?php } ?&gt;</p>
<p>&lt;form action=&#8221;&lt;?php the_permalink(); ?&gt;&#8221; id=&#8221;contactForm&#8221; method=&#8221;post&#8221;&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;<br />
&lt;label for=&#8221;contactName&#8221;&gt;Name:&lt;/label&gt;<br />
&lt;input type=&#8221;text&#8221; name=&#8221;contactName&#8221; id=&#8221;contactName&#8221; value=&#8221;&lt;?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?&gt;&#8221; /&gt;<br />
&lt;?php if($nameError != &#8221;) { ?&gt;<br />
&lt;span&gt;&lt;?=$nameError;?&gt;&lt;/span&gt;<br />
&lt;?php } ?&gt;<br />
&lt;/li&gt;</p>
<p>&lt;li&gt;<br />
&lt;label for=&#8221;email&#8221;&gt;Email&lt;/label&gt;<br />
&lt;input type=&#8221;text&#8221; name=&#8221;email&#8221; id=&#8221;email&#8221; value=&#8221;&lt;?php if(isset($_POST['email'])) echo $_POST['email'];?&gt;&#8221; /&gt;<br />
&lt;?php if($emailError != &#8221;) { ?&gt;<br />
&lt;span&gt;&lt;?=$emailError;?&gt;&lt;/span&gt;<br />
&lt;?php } ?&gt;<br />
&lt;/li&gt;</p>
<p>&lt;li&gt;&lt;label for=&#8221;commentsText&#8221;&gt;Message:&lt;/label&gt;<br />
&lt;textarea name=&#8221;comments&#8221; id=&#8221;commentsText&#8221; rows=&#8221;20&#8243; cols=&#8221;30&#8243;&gt;&lt;?php if(isset($_POST['comments'])) { if(function_exists(&#8217;stripslashes&#8217;)) { echo stripslashes($_POST['comments']); } else { echo $_POST['comments']; } } ?&gt;&lt;/textarea&gt;<br />
&lt;?php if($commentError != &#8221;) { ?&gt;<br />
&lt;span&gt;&lt;?=$commentError;?&gt;&lt;/span&gt;<br />
&lt;?php } ?&gt;<br />
&lt;/li&gt;</p>
<p>&lt;li&gt;<br />
&lt;input type=&#8221;submit&#8221;&gt;Send email&lt;/input&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;input type=&#8221;hidden&#8221; name=&#8221;submitted&#8221; id=&#8221;submitted&#8221; value=&#8221;true&#8221; /&gt;<br />
&lt;/form&gt;<br />
&lt;?php } ?&gt;<br />
&lt;/div&gt;&lt;!&#8211; .entry-content &#8211;&gt;<br />
&lt;/div&gt;&lt;!&#8211; .post &#8211;&gt;</p>
<p>&lt;?php endwhile; endif; ?&gt;<br />
&lt;/div&gt;&lt;!&#8211; #content &#8211;&gt;<br />
&lt;/div&gt;&lt;!&#8211; #container &#8211;&gt;<br />
&lt;?php get_sidebar(); ?&gt;<br />
&lt;?php get_footer(); ?&gt;</p></blockquote>
<p>第四步骤: 添加jQuery验证</p>
<p>到此为止，我们的表达已经能够非常完美的运作了。不过你还可以通过添加一个客户端验证来改善它。为此，我打算使用jQuery和 validate jQuery 插件，这个插件非常强大，通过它你可以正确、快速、轻松地验证表单。</p>
<p>首先是下载验证插件 然后将它上传到你的主题文件里，完成之后，将下面的代码粘贴到一个新的文件里：</p>
<blockquote><p>$(document).ready(function(){<br />
$(&#8220;#contactForm&#8221;).validate();<br />
});</p></blockquote>
<p>将这个文件命名为verif.js并保存至你的主题文件目录里。</p>
<p>现在就需要将这个javascript文件链接到主题里，打开你的header.php文件，把下面的代码粘贴到&lt;head&gt;和&lt;/head&gt;这两个标签之间：</p>
<blockquote><p>&lt;?php if( is_page(&#8216;contact&#8217;) ){ ?&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;&lt;?php bloginfo(&#8216;template_directory&#8217;); ?&gt;/js/jquery.validate.min.js&#8221;&gt;&lt;/script&gt;<br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;&lt;?php bloginfo(&#8216;template_directory&#8217;); ?&gt;/js/verif.js&#8221;&gt;&lt;/script&gt;<br />
&lt;?php }?&gt;</p></blockquote>
<p>大功告成！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.inn823.com/2010/06/564/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 页面及分类模板使用</title>
		<link>http://www.inn823.com/2010/06/559</link>
		<comments>http://www.inn823.com/2010/06/559#comments</comments>
		<pubDate>Sun, 27 Jun 2010 12:57:18 +0000</pubDate>
		<dc:creator>weweloo</dc:creator>
				<category><![CDATA[探讨]]></category>
		<category><![CDATA[模板]]></category>

		<guid isPermaLink="false">http://www.inn823.com/?p=559</guid>
		<description><![CDATA[如果使用 page.php 来处理所有页面的外观的话，答案肯定是不行的，但是如果使用不同的 WordPress 页面模板，就可以自定义每个页面的外观了。]]></description>
			<content:encoded><![CDATA[<h3>如何让每个 WordPress 页面有不同的风格或者样式吗？</h3>
<p>如果使用 page.php 来处理所有页面的外观的话，答案肯定是不行的，但是如果使用不同的 WordPress 页面模板，就可以自定义每个页面的外观了。</p>
<p>比如你博客的所有的页面除了“关于”这个页面之外都有侧边栏，在“关于”页面，你想内容的宽度能够扩展到这个页面的宽度。下面就是详细的实现步骤：</p>
<ul>
<li>在当前使用的主题文件夹中创建一个新模板，将它命名为 about.php。</li>
<li>然后把 page.php 模板中的内容拷贝到 about.php 文件中。</li>
<li> 修改页面样式</li>
</ul>
<p>完成之后，到 about.php 的最上面插入以下代码：</p>
<blockquote><p>&lt;?php<br />
/*<br />
Template Name: 关于<br />
*/<br />
?&gt;</p></blockquote>
<p>做好上面修改之后，保存，并上传到服务器上的当前主题文件夹下。</p>
<p>现在是到 WordPress 后台让“关于”页面使用“关于”页面模板：</p>
<p>创建新页面，或者编辑 about 页面（如果已经创建了），在右边，点击页面模板的下拉菜单，在下拉列表中找到“关于”，选择它并点击保存。</p>
<p>现在你的“关于”页面和你其他的页面使用不同的布局了。</p>
<p>使用 WordPress 页面模板技巧是非常常用的技巧，特别是那些把 WordPress 当作 CMS 的用户。使用你的想像力，你可以用它创建出一些非常有创意性的东东。</p>
<h3>WordPress 不同分类使用不同样式模板。</h3>
<p>可以为不同页面设置不同样式的模板，同样，分类也能做到，不过方法却不相同。</p>
<p>假如我想给一个叫做新闻的分类设置不一样的样式，首先需获取到新闻这个分类的ID，假如ID为1，则新建一个文件 category-1.php ，将 category.php 中的代码全部复制过来，然后修改样式，修改完成后保存上传。</p>
<p>没了，很简单。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.inn823.com/2010/06/559/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在 wordpress 3.0 中创建自定义内容类型</title>
		<link>http://www.inn823.com/2010/06/555</link>
		<comments>http://www.inn823.com/2010/06/555#comments</comments>
		<pubDate>Sun, 27 Jun 2010 09:26:38 +0000</pubDate>
		<dc:creator>weweloo</dc:creator>
				<category><![CDATA[探讨]]></category>

		<guid isPermaLink="false">http://www.inn823.com/?p=555</guid>
		<description><![CDATA[首先，什么是自定义内容类型呢？简单地说，自定义内容类型就是一个可以自定义的一篇博客文章或页面。例如，我想在一个博客上创建一个 优惠码列表，本来可以使用一个静态页面，但是以后如果要更新和添加新的优惠码就有点头疼了。]]></description>
			<content:encoded><![CDATA[<p>首先，什么是自定义内容类型呢？简单地说，自定义内容类型就是一个可以自定义的一篇博客文章或页面。例如，我想在一个博客上创建一个 优惠码列表，本来可以使用一个静态页面，但是以后如果要更新和添加新的优惠码就有点头疼了。因此，我创建了一个叫做“优惠（coupon）”的自定义内容类型以及一个页面模板来显示所有的优惠码，这样一来，管理这些优惠码就变得非常容易了:</p>
<h3>创建自定义内容类型</h3>
<p>首先要做的就是在主题 functions.php文件里添加下面的代码来创建一个自定义内容类型:</p>
<blockquote><p>function create_my_post_types() {<br />
register_post_type(&#8216;coupons&#8217;,<br />
array(<br />
&#8216;label&#8217; =&gt; __(&#8216;Coupons&#8217;),<br />
&#8217;singular_label&#8217; =&gt; __(&#8216;Coupon&#8217;),<br />
&#8216;public&#8217; =&gt; true,<br />
&#8217;supports&#8217; =&gt; array(<br />
&#8216;title&#8217;,<br />
&#8216;excerpt&#8217;,<br />
&#8216;comments&#8217;,<br />
&#8216;custom-fields&#8217;<br />
),<br />
&#8216;rewrite&#8217; =&gt; array(<br />
&#8217;slug&#8217; =&gt; &#8216;coupons&#8217;,<br />
&#8216;with_front&#8217; =&gt; false<br />
),<br />
)<br />
);<br />
}<br />
add_action( &#8216;init&#8217;, &#8216;create_my_post_types&#8217; );</p></blockquote>
<p>保存 functions.php文件后，在WordPress后台控制面板你就会发现一个新的标签，如下图所示:</p>
<p>这段代码是怎么回事呢?<br />
首先，我创建一个函数来注册一个新的内容类型，并命名为“coupons”，register_post_type()函数利用了下面的参数：</p>
<ul>
<li>label: 自定义内容类型的名称</li>
<li> singular_label: 自定义内容类型的单数形式。</li>
<li>public: 允许内容类型公开可见。</li>
<li> supports: 自定义内容类型支持的数据组 (编辑、摘要、评论、自定义字段等等…)</li>
<li> rewrite:URL重写的参数以及普通内容类型显示的参数。</li>
</ul>
<p>完整的参数列表可参考<a title="WordPress Codex" href="http://codex.wordpress.org/Function_Reference/register_post_type" target="_self">WordPress Codex</a><br />
最后，我通过使用add_action()将这个函数到勾选到WordPress init()函数上。</p>
<h3>添加数据</h3>
<p>现在自定义内容类型已经创建完了，你可以通过点击WordPress后台菜单的“Add Coupon”添加数据。<br />
你将会看到下图所示:</p>
<h3>创建一个页面模板来显示自定义内容类型</h3>
<p>在完成自定义内容创建并添加了一些内容之后，我们还需要将它显示出来。这里，我使用了一个页面模板。</p>
<blockquote><p>&lt;?php<br />
/*<br />
模板名称: Promo codes Page<br />
*/<br />
?&gt;<br />
&lt;?php get_header() ?&gt;</p>
<p>&lt;div id=&#8221;container&#8221;&gt;<br />
&lt;div id=&#8221;content&#8221;&gt;<br />
&lt;h1&gt;&lt;?php the_title(); ?&gt;&lt;/h1&gt;<br />
&lt;?php the_content(); ?&gt;</p>
<p>&lt;?php global $wp_query;<br />
$page_num = $paged;<br />
if($pagenum=&#8221;) $pagenum=1;</p>
<p>$wp_query = new WP_Query(&#8220;showposts=20&amp;post_type=coupons&amp;post_status=publish&amp;paged=&#8221;.$page_num);</p>
<p>while ($wp_query-&gt;have_posts()) : $wp_query-&gt;the_post(); ?&gt;</p>
<p>&lt;div id=&#8221;post-&lt;?php the_ID(); ?&gt;&#8221;&gt;<br />
&lt;h2&gt;&lt;?php the_title(); ?&gt;&lt;/h2&gt;<br />
&lt;div&gt;&lt;?php the_excerpt(); ?&gt;&lt;/div&gt;<br />
&lt;/div&gt;&lt;!&#8211; .post &#8211;&gt;</p>
<p>&lt;?php endwhile; ?&gt;</p>
<p>&lt;div&gt;&lt;p&gt;&lt;?php posts_nav_link(); ?&gt;&lt;/p&gt;&lt;/div&gt;</p>
<p>&lt;/div&gt;&lt;!&#8211; #content &#8211;&gt;<br />
&lt;/div&gt;&lt;!&#8211; #container &#8211;&gt;</p>
<p>&lt;?php get_sidebar() ?&gt;<br />
&lt;?php get_footer() ?&gt;</p></blockquote>
<p>上面的代码都非常简单也容易理解，为了获取特定内容类型，你需要指定参数 post_type=coupons。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.inn823.com/2010/06/555/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>自定义WordPress博文背景原来也不难</title>
		<link>http://www.inn823.com/2010/06/544</link>
		<comments>http://www.inn823.com/2010/06/544#comments</comments>
		<pubDate>Fri, 25 Jun 2010 05:03:20 +0000</pubDate>
		<dc:creator>weweloo</dc:creator>
				<category><![CDATA[探讨]]></category>

		<guid isPermaLink="false">http://www.inn823.com/?p=544</guid>
		<description><![CDATA[你是否想像  Nometet.com 这个网站一样让每篇博客文章的背景看起来都不一样呢？这个网站的设计确实是非常酷的，因为它允许作者通过上传图片来自定义文章背景，而且甚至图片的尺寸也没有特别的规定。上传并不困难，只要在meta盒里执行一个上传软件就可以了，主要还是在选择图片上，让我们来看看究竟如何实现的呢？]]></description>
			<content:encoded><![CDATA[<p>你是否想像  <a title="Nometet.com" href="http://www.nometet.com/" target="_self">Nometet.com</a> 这个网站一样让每篇博客文章的背景看起来都不一样呢？这个网站的设计确实是非常酷的，因为它允许作者通过上传图片来自定义文章背景，而且甚至图片的尺寸也没有特别的规定。上传并不困难，只要在meta盒里执行一个上传软件就可以了，主要还是在选择图片上，让我们来看看究竟如何实现的呢？<span id="more-544"></span></p>
<p>考虑到后面需要用上传软件将图片的URL地址保存到一个自定义字段里，所以我们先将自定义字段建好，这样一来你只需要将URL收到自定义字段里并将其显示为背景即可，代码非常简单:</p>
<blockquote><p>&lt;?php<br />
$bg = get_post_custom_values(&#8220;background&#8221;);<br />
if ( is_array($bg) ) { ?&gt;<br />
&lt;style type=&#8221;text/css&#8221; media=&#8221;screen&#8221;&gt;<br />
body{ background: url(&lt;?php echo $bg ?&gt;) fixed no-repeat; }<br />
&lt;/style&gt;<br />
&lt;?php } ?&gt;</p></blockquote>
<p>不过你还得修改图片尺寸并将URL拷贝到自定义字段里。</p>
<h3>自定义 meta上传软件</h3>
<p>我们需要一个上传软件，究竟该如何实现呢？通过对WooThemes的研究，我发现他们的主题里有一个admin-custom.php文件(在 /functions目录下)，这是他们用来加上传软件以及其他自定义meta盒的地方。</p>
<p><img class="alignnone size-full wp-image-546" title="custom-uploader" src="http://www.inn823.com/wp-content/uploads/2010/06/custom-uploader2.jpg" alt="" width="590" height="200" /></p>
<p>你可以从这里<a title="admin-custom.txt" href="http://www.inn823.com/wp-content/uploads/2010/06/admin-custom.txt" target="_self">下载</a>此文件。</p>
<p>下载完之后，复制所有代码并将其粘贴到你的functions.php文件里（注意要粘贴在结束的?&gt;标签之后）。</p>
<p>接着，需要启动meta盒，可以用下面的代码来实现：</p>
<blockquote><p>$woo_metaboxes = array(<br />
&#8220;image&#8221; =&gt; array (<br />
&#8220;name&#8221;        =&gt; &#8220;bg&#8221;,<br />
&#8220;label&#8221;     =&gt; &#8220;Background&#8221;,<br />
&#8220;type&#8221; =&gt; &#8220;upload&#8221;,<br />
&#8220;desc&#8221;      =&gt; &#8220;Automatically resized/enlarged but at least 1000px x 800px for it to be big enough.&#8221;<br />
),<br />
);<br />
update_option(&#8216;woo_custom_template&#8217;,$woo_metaboxes);</p></blockquote>
<p>这段代码必需添加在其他代码之后结束的?&gt;标签之前。保存并上传文件，这样就你就有了上传软件，它会将图片保存到自定义字段 ‘bg’里。</p>
<h3>调整图像大小</h3>
<p><img class="alignnone size-full wp-image-545" title="custom-bg" src="http://www.inn823.com/wp-content/uploads/2010/06/custom-bg.jpg" alt="" width="590" height="300" /></p>
<p>最后需要使用timthumb来调整图像的宽度为1920像素，首先下载<a title="Timthumb" href="http://code.google.com/p/timthumb/" target="_self">timthumb</a>，并将它上传到你的主题文件里，头部的代码要遵守timbthumb的句法：</p>
<blockquote><p>body{<br />
background: url(&lt;?php bloginfo(&#8216;template_url&#8217;); ?&gt;/tools/timthumb.php?w=1920&amp;zc=1&amp;src=&lt;?php echo $bg; ?&gt;) fixed no-repeat;<br />
}</p></blockquote>
<p>你会发现使用上面的代码是行不通的，因为timthumb不喜欢自定义字段里的图片URL地址http://… 。</p>
<p>最后别人告诉我需要将URL地址编译才行，于是把上面的代码替换成:</p>
<blockquote><p>body{<br />
background: url(&lt;?php bloginfo(&#8216;template_url&#8217;); ?&gt;/tools/timthumb.php?w=1920&amp;zc=1&amp;src=&lt;?php echo urlencode($bg); ?&gt;) fixed no-repeat;<br />
}</p></blockquote>
<p>宣告成功！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.inn823.com/2010/06/544/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wordpress插件总结-最常用的6个插件</title>
		<link>http://www.inn823.com/2010/06/540</link>
		<comments>http://www.inn823.com/2010/06/540#comments</comments>
		<pubDate>Fri, 25 Jun 2010 04:43:03 +0000</pubDate>
		<dc:creator>weweloo</dc:creator>
				<category><![CDATA[探讨]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://www.inn823.com/?p=540</guid>
		<description><![CDATA[下面总结的插件，是很实用的wordpress插件，一般的网站都会用到。]]></description>
			<content:encoded><![CDATA[<p>下面总结的插件，是很实用的wordpress插件，一般的网站都会用到。<span id="more-540"></span></p>
<p>1. <a title="WP-PageNavi" href="http://wordpress.org/extend/plugins/wp-pagenavi/" target="_self">WP-PageNavi</a></p>
<p>wordpress 分页插件，几乎每一个博客都在使用的插件。简单、方便、实用。</p>
<p>2. <a title="All-in-one-SEO" href="http://semperfiwebdesign.com/" target="_self">All-in-one-SEO</a></p>
<p>wordpress最棒的SEO插件，即使不懂SEO,安装上它也是有好处的。</p>
<p>3）WordPress Related Posts</p>
<p>wordpress相关文章插件，在文章中显示与之相关的文章,对SEO有很大的作用。</p>
<p>4）Subscribe To Comments</p>
<p>wordpress评论通知插件，可以有效地提供回访率。</p>
<p>5）Google XML Sitemaps</p>
<p>为Google生成网站地图，可以通过Google网站管理员工具提交到Google搜索引擎。</p>
<p>6）Simple Tags</p>
<p>方便管理wordpress标签的插件。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.inn823.com/2010/06/540/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>实用的WordPress主题函数使用技巧（五）</title>
		<link>http://www.inn823.com/2010/06/537</link>
		<comments>http://www.inn823.com/2010/06/537#comments</comments>
		<pubDate>Tue, 22 Jun 2010 06:28:31 +0000</pubDate>
		<dc:creator>weweloo</dc:creator>
				<category><![CDATA[探讨]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[函数]]></category>
		<category><![CDATA[模板]]></category>

		<guid isPermaLink="false">http://www.inn823.com/?p=537</guid>
		<description><![CDATA[WordPress主题一般有一系列的php文件和一个style. css文件，而其中功能最为强大的文件则是functions. php。WordPress 有非常多的常用函数，你可以通过添加和删除一些函数来增加WordPress主题的功能，而不需要修改任何的主题文件。]]></description>
			<content:encoded><![CDATA[<p>WordPress主题一般有一系列的php文件和一个style. css文件，而其中功能最为强大的文件则是functions. php。WordPress 有非常多的常用函数，你可以通过添加和删除一些函数来增加WordPress主题的功能，而不需要修改任何的主题文件。<span id="more-537"></span></p>
<h3>23，设定文章从发布到出现在RSS中的时间长短</h3>
<p>通过RSS订阅来阅读博文的朋友可能都会有这个体验：经常发现RSS中的文字或者细节有错误，而返回到页面的时候却发现错误已经没有了。这种情况最有可能是因为<br />
RSS最大的好处是快捷、直接，但这个最大的好处有时候对作者来说却会引发某些尴尬。所以，有时候有必要让文章发布后到读者从RSS中按到有一个小小的时间差，方便作者排查某些问题。以下的代码可以做到以下几点：</p>
<blockquote>
<div id="_mcePaste">function publish_later_on_feed($where) {</div>
<div id="_mcePaste">global $wpdb;</div>
<div id="_mcePaste">if ( is_feed() ) {</div>
<div id="_mcePaste">// timestamp in WP-format</div>
<div id="_mcePaste">$now = gmdate(‘Y-m-d H:i:s’);</div>
<div id="_mcePaste">// value for wait; + device</div>
<div id="_mcePaste">$wait = ‘10′; // integer</div>
<div id="_mcePaste">// http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff</div>
<div id="_mcePaste">$device = ‘MINUTE’; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR</div>
<div id="_mcePaste">// add SQL-sytax to default $where</div>
<div id="_mcePaste">$where .= ” AND TIMESTAMPDIFF($device, $wpdb-&gt;posts.post_date_gmt, ‘$now’) &gt; $wait “;</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">return $where;</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">add_filter(‘posts_where’, ‘publish_later_on_feed’);</div>
<p>function publish_later_on_feed($where) {    global $wpdb;<br />
if ( is_feed() ) {    // timestamp in WP-format    $now = gmdate(‘Y-m-d H:i:s’);<br />
// value for wait; + device    $wait = ‘10′; // integer<br />
// http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_timestampdiff    $device = ‘MINUTE’; //MINUTE, HOUR, DAY, WEEK, MONTH, YEAR<br />
// add SQL-sytax to default $where    $where .= ” AND TIMESTAMPDIFF($device, $wpdb-&gt;posts.post_date_gmt, ‘$now’) &gt; $wait “;    }    return $where;    }<br />
add_filter(‘posts_where’, ‘publish_later_on_feed’);</p></blockquote>
<p>这段代码设置的时间是10分钟，你可以把10改成任何你想要的时间。</p>
<h3>24，自定义摘要输出时的符号</h3>
<p>一般设定自动摘要输出，你会经常在WordPress博客的首页看到“［。..］”这样的符号。为了界面的美观，或者是个性化的需要，你可以把这个默认的符号改变为其他的符号。而以下的代码就是为了实现这个而写：</p>
<blockquote><p>// custom excerpt ellipses for 2.9<br />
function custom_excerpt_more($more) {<br />
return &#8216;…&#8217;;<br />
}</p>
<p>add_filter(&#8216;excerpt_more&#8217;, &#8216;custom_excerpt_more&#8217;);<br />
/* custom excerpt ellipses for 2.8-<br />
function custom_excerpt_more($excerpt) {<br />
return str_replace(&#8216;[...]&#8216;, &#8216;…&#8217;, $excerpt);<br />
}<br />
add_filter(&#8216;wp_trim_excerpt&#8217;, &#8216;custom_excerpt_more&#8217;);<br />
*/</p></blockquote>
<h3>25，自定义摘要输出的文字长度</h3>
<p>假如你比较懒，不想在撰写文章的时候每篇文章都输入摘要，就可以让系统自动截取一定长度的文字来作为摘要输出。下面的代码默认是100个字节，也就是50个汉字。你可以把数值修改成符合你需要的数字。</p>
<blockquote><p>function new_excerpt_length($length) {<br />
return 100;<br />
}<br />
add_filter(&#8216;excerpt_length&#8217;, &#8216;new_excerpt_length&#8217;);</p></blockquote>
<h3>26，显示精确评论数</h3>
<p>WordPress默认是把trackbacks 和 pings 都算作评论的，因此当你设置不显示trackbacks 和 ping的时候，评论数看起来总是不对头。以下的代码则以让WordPress只计算评论的数量，而不把trackbacks 和 pings也计算进去。</p>
<blockquote><p>add_filter(&#8216;get_comments_number&#8217;, &#8216;comment_count&#8217;, 0);<br />
function comment_count( $count ) {<br />
if ( ! is_admin() ) {<br />
global $id;<br />
$comments_by_type = &amp;separate_comments(get_comments(&#8217;status=approve&amp;post_id=&#8217; . $id));<br />
return count($comments_by_type['comment']);<br />
} else {<br />
return $count;<br />
}<br />
}</p></blockquote>
<h3>27，取消RSS输出</h3>
<p>对于某些博客而言，或者因为被太多人采集了，或者因为不想让别人通过RSS订阅，想取消RSS输出。WordPress默认是没有这个功能的，但你可以通过以下的代码来取消RSS输出。</p>
<blockquote><p>function fb_disable_feed() {<br />
wp_die( __(&#8216;No feed available,please visit our &lt;a href=&#8221;&#8216;. get_bloginfo(&#8216;url&#8217;) .&#8217;&#8221;&gt;homepage&lt;/a&gt;!&#8217;) );<br />
}<br />
add_action(&#8216;do_feed&#8217;, &#8216;fb_disable_feed&#8217;, 1);<br />
add_action(&#8216;do_feed_rdf&#8217;, &#8216;fb_disable_feed&#8217;, 1);<br />
add_action(&#8216;do_feed_rss&#8217;, &#8216;fb_disable_feed&#8217;, 1);<br />
add_action(&#8216;do_feed_rss2&#8242;, &#8216;fb_disable_feed&#8217;, 1);<br />
add_action(&#8216;do_feed_atom&#8217;, &#8216;fb_disable_feed&#8217;, 1);</p></blockquote>
<h3>28，显示Twitter 的订阅数以及其他资料</h3>
<p>Twitter系统以及很多第三方的客户端都可以让你在WordPress博客的侧边栏暂时Twitter的订阅数以及一些其他的资料。这种做法往往很多时候都没办法跟博客已有的界面结合的很好。而以下的代码则可以让你自定义Twitter 在博客上的显示外观。</p>
<blockquote><p>function rarst_twitter_user( $username, $field, $display = false ) {<br />
$interval = 3600;<br />
$cache = get_option(&#8216;rarst_twitter_user&#8217;);<br />
$url = &#8216;http://api.twitter.com/1/users/show.json?screen_name=&#8217;.urlencode($username);</p>
<p>if ( false == $cache )<br />
$cache = array();</p>
<p>// if first time request add placeholder and force update<br />
if ( !isset( $cache[$username][$field] ) ) {<br />
$cache[$username][$field] = NULL;<br />
$cache[$username]['lastcheck'] = 0;<br />
}</p>
<p>// if outdated<br />
if( $cache[$username]['lastcheck'] &lt; (time()-$interval) ) {</p>
<p>// holds decoded JSON data in memory<br />
static $memorycache;</p>
<p>if ( isset($memorycache[$username]) ) {<br />
$data = $memorycache[$username];<br />
}<br />
else {<br />
$result = wp_remote_retrieve_body(wp_remote_request($url));<br />
$data = json_decode( $result );<br />
if ( is_object($data) )<br />
$memorycache[$username] = $data;<br />
}</p>
<p>if ( is_object($data) ) {<br />
// update all fields, known to be requested<br />
foreach ($cache[$username] as $key =&gt; $value)<br />
if( isset($data-&gt;$key) )<br />
$cache[$username][$key] = $data-&gt;$key;</p>
<p>$cache[$username]['lastcheck'] = time();<br />
}<br />
else {<br />
$cache[$username]['lastcheck'] = time()+60;<br />
}</p>
<p>update_option( &#8216;rarst_twitter_user&#8217;, $cache );<br />
}</p>
<p>if ( false != $display )<br />
echo $cache[$username][$field];<br />
return $cache[$username][$field];<br />
}</p></blockquote>
<p>把上面的代码复制到 functions.php后，再把下面代码复制到你想出现的地方即可。</p>
<blockquote><p>echo rarst_twitter_user(&#8216;wpbeginner&#8217;, &#8216;name&#8217;).&#8217; has &#8216;.<br />
rarst_twitter_user(&#8216;wpbeginner&#8217;, &#8216;followers_count&#8217;).&#8217; followers after &#8216;.<br />
rarst_twitter_user(&#8216;wpbeginner&#8217;, &#8217;statuses_count&#8217;).&#8217; updates.&#8217;;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.inn823.com/2010/06/537/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>实用的WordPress主题函数使用技巧（四）</title>
		<link>http://www.inn823.com/2010/06/533</link>
		<comments>http://www.inn823.com/2010/06/533#comments</comments>
		<pubDate>Tue, 22 Jun 2010 06:06:29 +0000</pubDate>
		<dc:creator>weweloo</dc:creator>
				<category><![CDATA[探讨]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[函数]]></category>
		<category><![CDATA[模板]]></category>

		<guid isPermaLink="false">http://www.inn823.com/?p=533</guid>
		<description><![CDATA[WordPress主题一般有一系列的php文件和一个style. css文件，而其中功能最为强大的文件则是functions. php。WordPress 有非常多的常用函数，你可以通过添加和删除一些函数来增加WordPress主题的功能，而不需要修改任何的主题文件。]]></description>
			<content:encoded><![CDATA[<p>WordPress主题一般有一系列的php文件和一个style. css文件，而其中功能最为强大的文件则是functions. php。WordPress 有非常多的常用函数，你可以通过添加和删除一些函数来增加WordPress主题的功能，而不需要修改任何的主题文件。  <span id="more-533"></span></p>
<h3>20，启用WordPress简码功能</h3>
<p>Google AdSense 算是博客的标配之一了，很多CMS经常会在模板选项里面预置Google AdSense的广告位。假如你的模板不支持，你可以通过以下的方法来解决：</p>
<blockquote>
<div id="_mcePaste">function showads() {</div>
<div id="_mcePaste">return &#8216;&lt;div id=&#8221;adsense&#8221;&gt;&lt;script type=&#8221;text/javascript&#8221;&gt;&lt;!–</div>
<div id="_mcePaste">google_ad_client = &#8220;pub-XXXXXXXXXXXXXX&#8221;;</div>
<div id="_mcePaste">google_ad_slot = &#8220;4668915978&#8243;;</div>
<div id="_mcePaste">google_ad_width = 468;</div>
<div id="_mcePaste">google_ad_height = 60;</div>
<div id="_mcePaste">//–&gt;</div>
<div id="_mcePaste">&lt;/script&gt;</div>
<div id="_mcePaste">&lt;script type=&#8221;text/javascript&#8221;</div>
<div id="_mcePaste">src=&#8221;http://pagead2.googlesyndication.com/pagead/show_ads.js&#8221;&gt;</div>
<div id="_mcePaste">&lt;/script&gt;&lt;/div&gt;&#8217;;</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">add_shortcode(&#8216;adsense&#8217;, &#8217;showads&#8217;);</div>
</blockquote>
<h3>21，不通过.htaccess将rss地址唯一化</h3>
<p>WordPress本身提供好几个不同版本的rss地址，加入你又使用了FeedBurner或者feedsky的话，RSS地址就会更多。太多的RSS容易分流订阅客户，而且也不利于品牌推广。 一般的修改方法是通过更改.htaccess来进行，此外，还可以通过以下的代码来实现。</p>
<blockquote><p>function custom_feed_link($output, $feed) {<br />
$feed_url = &#8216;http://feeds.feedburner.com/wpbeginner&#8217;;<br />
$feed_array = array(&#8216;rss&#8217; =&gt; $feed_url, &#8216;rss2&#8242; =&gt; $feed_url, &#8216;atom&#8217; =&gt; $feed_url, &#8216;rdf&#8217; =&gt; $feed_url, &#8216;comments_rss2&#8242; =&gt; &#8221;);<br />
$feed_array[$feed] = $feed_url;<br />
$output = $feed_array[$feed];<br />
return $output;<br />
}<br />
function other_feed_links($link) {<br />
$link = &#8216;http://feeds.feedburner.com/wpbeginner&#8217;;<br />
return $link;<br />
//Add our functions to the specific filters<br />
add_filter(&#8216;feed_link&#8217;,'custom_feed_link&#8217;, 1, 2);<br />
add_filter(&#8216;category_feed_link&#8217;, &#8216;other_feed_links&#8217;);<br />
add_filter(&#8216;author_feed_link&#8217;, &#8216;other_feed_links&#8217;);<br />
add_filter(&#8216;tag_feed_link&#8217;,'other_feed_links&#8217;);<br />
add_filter(&#8217;search_feed_link&#8217;,'other_feed_links&#8217;);</p></blockquote>
<h3>22，启用paypal 捐赠简码</h3>
<p>当你写完一篇以后，可以在文章里面插入paypal 捐赠按钮，方便读者捐赠。以下的代码可以让你非常轻松的做到这一点。</p>
<blockquote><p>function donate_shortcode( $atts ) {<br />
extract(shortcode_atts(array(<br />
&#8216;text&#8217; =&gt; &#8216;Make a donation&#8217;,<br />
&#8216;account&#8217; =&gt; &#8216;REPLACE ME&#8217;,<br />
&#8216;for&#8217; =&gt; &#8221;,<br />
), $atts));<br />
global $post;<br />
if (!$for) $for = str_replace(&#8221; &#8220;,&#8221; &#8220;,$post-&gt;post_title);<br />
return &#8216;&lt;a class=&#8221;donateLink&#8221; href=&#8221;https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&amp;business=&#8217;.$account.&#8217;&amp;item_name=Donation for &#8216;.$for.&#8217;&#8221;&gt;&#8217;.$text.&#8217;&lt;/a&gt;&#8217;;<br />
}<br />
add_shortcode(&#8216;donate&#8217;, &#8216;donate_shortcode&#8217;);</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.inn823.com/2010/06/533/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

