﻿





<?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; WordPress</title>
	<atom:link href="http://www.inn823.com/tag/wordpress/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>使用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插件总结-最常用的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>
		<item>
		<title>实用的WordPress主题函数使用技巧（三）</title>
		<link>http://www.inn823.com/2010/06/529</link>
		<comments>http://www.inn823.com/2010/06/529#comments</comments>
		<pubDate>Tue, 22 Jun 2010 05:25:44 +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=529</guid>
		<description><![CDATA[WordPress主题一般有一系列的php文件和一个style. css文件，而其中功能最为强大的文件则是functions. php。WordPress 有非常多的常用函数，你可以通过添加和删除一些函数来增加WordPress主题的功能，而不需要修改任何的主题文件。]]></description>
			<content:encoded><![CDATA[<p>WordPress主题一般有一系列的php文件和一个style. css文件，而其中功能最为强大的文件则是functions. php。WordPress 有非常多的常用函数，你可以通过添加和删除一些函数来增加WordPress主题的功能，而不需要修改任何的主题文件。</p>
<p><span id="more-529"></span></p>
<h3>15，优化WordPress 博客的RSS</h3>
<p>如何在RSS里面加入版权链接？如何在RSS加入广告？针对国内互联网的现状，在RSS里面加入版权尤为重要，广告倒是次要的。<br />
除了插件（Better Feed）以外，可以采用以下的方法来实现。</p>
<blockquote><p>function wpbeginner_postrss($content) {<br />
if(is_feed()){<br />
$content = &#8216;This post was written by Syed Balkhi &#8216;.$content.&#8217;Check out WPBeginner&#8217;;<br />
}<br />
return $content;<br />
}<br />
add_filter(&#8216;the_excerpt_rss&#8217;, &#8216;wpbeginner_postrss&#8217;);<br />
add_filter(&#8216;the_content&#8217;, &#8216;wpbeginner_postrss&#8217;);</p></blockquote>
<h3>16，给RSS添加缩略图</h3>
<p>缩略图一般是在正常的博客页面上用来起到美化界面的作用。当然，如果需要的话，也可以给RSS内容增加一个缩略图。要做到这一点，只需要在functions.php 里面加入如下代码：</p>
<blockquote><p>function rss_post_thumbnail($content) {<br />
global $post;<br />
if(has_post_thumbnail($post-&gt;ID)) {<br />
$content = &#8216;&lt;p&gt;&#8217; . get_the_post_thumbnail($post-&gt;ID) .<br />
&#8216;&lt;/p&gt;&#8217; . get_the_content();<br />
}<br />
return $content;<br />
}<br />
add_filter(&#8216;the_excerpt_rss&#8217;, &#8216;rss_post_thumbnail&#8217;);<br />
add_filter(&#8216;the_content_feed&#8217;, &#8216;rss_post_thumbnail&#8217;);</p></blockquote>
<h3>17，开启WordPress评论嵌套功能</h3>
<p>评论嵌套功能是WordPress自身带有的最好功能之一，只可惜很多WordPress模板都不支持。很多文章都有提到过修改的方法，但一般都涉及到修改comments文件和header文件。事实上，通过修改functions.php文件来修改是最简便的，而且一劳永逸。</p>
<blockquote>
<div id="_mcePaste">// enable threaded comments</div>
<div id="_mcePaste">function enable_threaded_comments(){</div>
<div id="_mcePaste">if (!is_admin()) {</div>
<div id="_mcePaste">if (is_singular() AND comments_open() AND (get_option(&#8216;thread_comments&#8217;) == 1))</div>
<div id="_mcePaste">wp_enqueue_script(&#8216;comment-reply&#8217;);</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">}</div>
<div id="_mcePaste">add_action(&#8216;get_header&#8217;, &#8216;enable_threaded_comments&#8217;);</div>
</blockquote>
<h3>18，移除WordPress登陆面板的错误提示</h3>
<p>当你输入的密码或者用户名错误的时候，WordPress登陆界面会给出相应的提示。但如果碰到黑客的话，这些提示反而给了他们更好的提示，让他们更容易破解用户名和密码。因此，处于安全性考虑，移除WordPress登陆面板的错误提示是非常必要的。</p>
<blockquote><p>add_filter(&#8216;login_errors&#8217;,create_function(&#8216;$a&#8217;, &#8220;return null;&#8221;));</p></blockquote>
<h3>19，关闭WordPress的搜索功能</h3>
<p>当把WordPress当做CMS系统来使用的时候，WordPress自带的搜索功能实用性就不是太强了。一来增加数据库查询次数，二来Google 自定义搜索会是更好的替代。因此，你只需要通过以下的代码就可以关闭WordPress的搜索功能。</p>
<blockquote><p>function fb_filter_query( $query, $error = true ) {<br />
if ( is_search() ) {<br />
$query-&gt;is_search = false;<br />
$query-&gt;query_vars[s] = false;<br />
$query-&gt;query[s] = false;<br />
// to error<br />
if ( $error == true )<br />
$query-&gt;is_404 = true;<br />
}<br />
}<br />
add_action( &#8216;parse_query&#8217;, &#8216;fb_filter_query&#8217; );<br />
add_filter( &#8216;get_search_form&#8217;, create_function( &#8216;$a&#8217;, &#8220;return null;&#8221; ) );</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.inn823.com/2010/06/529/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>实用的WordPress主题函数使用技巧（二）</title>
		<link>http://www.inn823.com/2010/06/522</link>
		<comments>http://www.inn823.com/2010/06/522#comments</comments>
		<pubDate>Tue, 22 Jun 2010 05:05:35 +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=522</guid>
		<description><![CDATA[WordPress主题一般有一系列的php文件和一个style. css文件，而其中功能最为强大的文件则是functions. php。WordPress 有非常多的常用函数，你可以通过添加和删除一些函数来增加WordPress主题的功能，而不需要修改任何的主题文件。]]></description>
			<content:encoded><![CDATA[<p>WordPress主题一般有一系列的php文件和一个style. css文件，而其中功能最为强大的文件则是functions. php。WordPress 有非常多的常用函数，你可以通过添加和删除一些函数来增加WordPress主题的功能，而不需要修改任何的主题文件。</p>
<p><span id="more-522"></span></p>
<h3>8，让WordPress底部的版权时间显示的更生动</h3>
<p>很多网站的版权时间都显示的是建站时的年份，有些则是显示当下的年份。事实上，这两种方式都不是太好。<br />
最好的方式是显示从网站建设之初的年份到目前的年份位置，类似© 2006 – 2010这种显示方式。<br />
这种效果通过以下的代码可以实现。添加完下面的代码后，系统会自动抓取发布第一篇文章的年份以及最新一篇文章的年份，并把它显示出来。</p>
<blockquote><p>function comicpress_copyright() {<br />
global $wpdb;<br />
$copyright_dates = $wpdb-&gt;get_results(&#8221;<br />
SELECT<br />
YEAR(min(post_date_gmt)) AS firstdate,<br />
YEAR(max(post_date_gmt)) AS lastdate<br />
FROM<br />
$wpdb-&gt;posts<br />
WHERE<br />
post_status = &#8216;publish&#8217;<br />
&#8220;);<br />
$output = &#8221;;<br />
if($copyright_dates) {<br />
$copyright = &#8220;&amp;copy; &#8221; . $copyright_dates[0]-&gt;firstdate;<br />
if($copyright_dates[0]-&gt;firstdate != $copyright_dates[0]-&gt;lastdate) {<br />
$copyright .= &#8216;-&#8217; . $copyright_dates[0]-&gt;lastdate;<br />
}<br />
$output = $copyright;<br />
}<br />
return $output;<br />
}</p></blockquote>
<p>把上面的代码添加到了functions.php文件里面后，还需要在 footer.php 任何你想显示版权时间的地方加上如下代码：</p>
<blockquote><p>&lt;?php echo comicpress_copyright(); ?&gt;</p></blockquote>
<h3>9，给读者投稿文章添加姓名/来源</h3>
<p>如果你的博客接受读者的投稿，想在该篇文章出现投稿者的姓名，同时又不想通过添加作者的这种繁琐而麻烦的方式来操作，则可以使用下面的代码。使用下面的代码后，只需要在撰写文章的时候在自定义区域填上投稿者的姓名即可。系统会自动将发布者的名称换成投稿者的名称。<br />
这个代码对接受读者投稿较多的网站，或者是资讯型的网站非常有用（利用它来显示来源）。</p>
<blockquote><p>add_filter( &#8216;the_author&#8217;, &#8216;guest_author_name&#8217; );<br />
add_filter( &#8216;get_the_author_display_name&#8217;, &#8216;guest_author_name&#8217; );<br />
function guest_author_name( $name ) {<br />
global $post;<br />
$author = get_post_meta( $post-&gt;ID, &#8216;guest-author&#8217;, true );<br />
if ( $author )<br />
$name = $author;<br />
return $name;<br />
}</p></blockquote>
<h3>10，启用文章缩略图功能</h3>
<p>从WordPress2.9版本开始，可以给模板添加文章缩略图功能。操作方法很简单，只需要把下面的代码添加到functions.php里面。</p>
<blockquote><p>add_theme_support( &#8216;post-thumbnails&#8217; );</p></blockquote>
<p>然后在要显示缩略图的地方放置下面的代码即可。</p>
<blockquote><p>&lt;?php the_post_thumbnail(); ?&gt;</p></blockquote>
<h3>11，自定义WordPress 3.0 版本导航栏</h3>
<p>WordPress 3.0 增加了一个功能，可以让WordPress模板开发者自定义导航菜单。如果你想给用户一个导航栏的选择权，只需要把下面的代码加入到 functions.php 文件里面。</p>
<blockquote><p>add_theme_support( &#8216;nav-menus&#8217; );</p></blockquote>
<p>之后把下面的代码复制到你想出新的地方：</p>
<blockquote><p>&lt;?php wp_nav_menu( array( &#8217;sort_column&#8217; =&gt; &#8216;menu_order&#8217;, &#8216;container_class&#8217; =&gt; &#8216;menu-header&#8217; ) ); ?&gt;</p></blockquote>
<h3>12，移除WordPress默认的个人资料选项</h3>
<p>如果你客户的想让用户可以自行添加个人资料，那么需要让这个选项更简单。其中一个方法就是移除部分选项，AIM， Yahoo IM 和 Jabber 之类的东东。</p>
<blockquote><p>add_filter(&#8216;user_contactmethods&#8217;,'hide_profile_fields&#8217;,10,1);<br />
function hide_profile_fields( $contactmethods ) {<br />
unset($contactmethods['aim']);<br />
unset($contactmethods['jabber']);<br />
unset($contactmethods['yim']);<br />
return $contactmethods;<br />
}</p></blockquote>
<h3>13，添加作者个人资料选项</h3>
<p>如果你想更充分的展示作者的个人资料，那么你可以添加一些更个性化的资料选项，例如添加twitter 和 facebook账号等。下面的代码就是添加twitter 和 facebook账号用的。当然，你可以把里面的内容替换成其他任何你想展示的资料。这个对多博客作者尤其有用。</p>
<blockquote><p>function my_new_contactmethods( $contactmethods ) {<br />
// Add Twitter<br />
$contactmethods['twitter'] = &#8216;Twitter&#8217;;<br />
//add Facebook<br />
$contactmethods['facebook'] = &#8216;Facebook&#8217;;<br />
return $contactmethods;<br />
}<br />
add_filter(&#8216;user_contactmethods&#8217;,'my_new_contactmethods&#8217;,10,1);</p></blockquote>
<p>添加完是上面的代码后，你需要在author.php文件里面添加如下的代码：</p>
<blockquote><p>&lt;?php echo $curauth-&gt;twitter; ?&gt;</p></blockquote>
<p>注意：改代码仅在WordPress2.9以上的版本起作用。</p>
<h3>14，添加侧边栏小模块</h3>
<p>这是目前用的最多的技巧之一，很多WordPress模板开发者都已经知道，并且在用了。</p>
<blockquote><p>if ( function_exists(&#8216;register_sidebar&#8217;) )<br />
register_sidebar(array(&#8216;name&#8217;=&gt;&#8217;MiddleSidebar&#8217;,<br />
&#8216;before_widget&#8217; =&gt; &#8216;&lt;li class=&#8221;widget&#8221;&gt;&#8217;,<br />
&#8216;after_widget&#8217; =&gt; &#8216;&lt;/li&gt;&#8217;,<br />
&#8216;before_title&#8217; =&gt; &#8216;&lt;h2 class=&#8221;widgettitle&#8221;&gt;&#8217;,<br />
&#8216;after_title&#8217; =&gt; &#8216;&lt;/h3&gt;&#8217;,<br />
));<br />
register_sidebar(array(&#8216;name&#8217;=&gt;&#8217;FooterSidebar&#8217;,<br />
&#8216;before_widget&#8217; =&gt; &#8216;&lt;li class=&#8221;widget&#8221;&gt;&#8217;,<br />
&#8216;after_widget&#8217; =&gt; &#8216;&lt;/li&gt;&#8217;,<br />
&#8216;before_title&#8217; =&gt; &#8216;&lt;h2 class=&#8221;widgettitle&#8221;&gt;&#8217;,<br />
&#8216;after_title&#8217; =&gt; &#8216;&lt;/h3&gt;&#8217;,<br />
));</p></blockquote>
<p>上面的代码可以增加两个侧边栏的小模块。以此类推，你可以添加无限多侧边栏的小模块。添加完上面的代码后，你需要把下面的代码添加到你要出现这边小模块的地方。</p>
<blockquote><p>&lt;?php if ( !function_exists(&#8216;dynamic_sidebar&#8217;) || !dynamic_sidebar(&#8216;MiddleSidebar&#8217;) ) : ?&gt;<br />
&lt;!–Default sidebar info goes here–&gt;<br />
&lt;?php endif; ?&gt;</p></blockquote>
<p>注意：侧边栏并不一定需要出现在sidebar.php文件里面。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.inn823.com/2010/06/522/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>实用的WordPress主题函数使用技巧（一）</title>
		<link>http://www.inn823.com/2010/06/517</link>
		<comments>http://www.inn823.com/2010/06/517#comments</comments>
		<pubDate>Tue, 22 Jun 2010 03:43:51 +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=517</guid>
		<description><![CDATA[WordPress主题一般有一系列的php文件和一个style. css文件，而其中功能最为强大的文件则是functions. php。WordPress 有非常多的常用函数，你可以通过添加和删除一些函数来增加WordPress主题的功能，而不需要修改任何的主题文件。]]></description>
			<content:encoded><![CDATA[<p>WordPress主题一般有一系列的php文件和一个style. css文件，而其中功能最为强大的文件则是functions. php。WordPress 有非常多的常用函数，你可以通过添加和删除一些函数来增加WordPress主题的功能，而不需要修改任何的主题文件。<br />
本文的目标读者是WordPress 主题开发者，需要懂一些基本的PHP知识。另，下文提到的所有代码都必须添加到functions. php文件里面。</p>
<p><span id="more-517"></span></p>
<h3>1，添加Google Analytics 统计</h3>
<p>只需要把下面的代码添加到functions. php文件里面——注意把里面的中文部分替换成你的Google 统计代码，然后你就不用担心了。</p>
<blockquote><p>&lt;?php<br />
add_action(&#8216;wp_footer&#8217;, &#8216;add_googleanalytics&#8217;);<br />
function add_googleanalytics() { ?&gt;<br />
// 把Google 统计代码复制到这里<br />
&lt;?php } ?&gt;</p></blockquote>
<h3>2，给WordPress 博客添加一个 Favicon 图标。</h3>
<p>每一个博客都应该有一个独一无二的标志，你可以通过添加代码到header.php来实现。当然，你也可以通过添加代码到functions.php来实现。添加完下面的代码后，只需要把Favicon.ico文件上传到网站根目录即可。</p>
<blockquote><p>// add a favicon to your<br />
function blog_favicon() {<br />
echo &#8216;&lt;link rel=&#8221;Shortcut Icon&#8221; type=&#8221;image/x-icon&#8221; href=&#8221;&#8216;.get_bloginfo(&#8216;wpurl&#8217;).&#8217;/favicon.ico&#8221; /&gt;&#8217;;<br />
}<br />
add_action(&#8216;wp_head&#8217;, &#8216;blog_favicon&#8217;);</p></blockquote>
<h3>3，移除WordPress版本号。</h3>
<p>WordPress有新版本出来后，总会在后台提示管理员进行升级。但假如你是给客户制作网站，而他们又不想升级的话，最好的办法就是从WordPress 头部、RSS里面以及其他任何地方移除版本的信息。</p>
<blockquote><p>function wpbeginner_remove_version() {<br />
return &#8221;;<br />
}<br />
add_filter(&#8216;the_generator&#8217;, &#8216;wpbeginner_remove_version&#8217;);</p></blockquote>
<h3>4，给WordPress控制面板添加自定义logo</h3>
<p>用WordPress给客户制作网站，如果给WordPress的控制面板后台添加一个自定义logo，则会让网站显的专业很多。要做到这一点，你只需要把代码添加到functions.php即可。</p>
<blockquote><p>//hook the administrative header output<br />
add_action(&#8216;admin_head&#8217;, &#8216;my_custom_logo&#8217;);<br />
function my_custom_logo() {<br />
echo &#8216;<br />
&lt;style type=&#8221;text/css&#8221;&gt;<br />
#header-logo { background-image: url(&#8216;.get_bloginfo(&#8216;template_directory&#8217;).&#8217;/images/custom-logo.gif) !important; }<br />
&lt;/style&gt;<br />
&#8216;;<br />
}</p></blockquote>
<h3>5，改变WordPress后台控制面板底部信息</h3>
<p>如上所述，如果不想让客户知道网站是由WordPress制作，则可以修改WordPress控制面板底部的信息，只需要把下面的代码添加到 functions.php文件即可。</p>
<p>注：代码里面的html部分可以修改。</p>
<blockquote><p>function remove_footer_admin () {<br />
echo &#8216;Fueled by &lt;a href=&#8221;http://www.wordpress.org&#8221; target=&#8221;_blank&#8221;&gt;WordPress&lt;/a&gt; | Designed by &lt;a href=&#8221;http://www.uzzz.net&#8221; target=&#8221;_blank&#8221;&gt;Uzzz Productions&lt;/a&gt; | WordPress Tutorials: &lt;a href=&#8221;http://www.wpbeginner.com&#8221; target=&#8221;_blank&#8221;&gt;WPBeginner&lt;/a&gt;&lt;/p&gt;&#8217;;<br />
}<br />
add_filter(&#8216;admin_footer_text&#8217;, &#8216;remove_footer_admin&#8217;);</p></blockquote>
<h3>6，自定义WordPress控制面板模块</h3>
<p>一些WordPress插件会在控制面板那里添加一些模块来显示相应的信息，作为一个WordPress模板设计者，你也可以通过修改functions.php文件来实现这个功能。注意替换里面的相应信息。</p>
<blockquote><p>add_action(&#8216;wp_dashboard_setup&#8217;, &#8216;my_custom_dashboard_widgets&#8217;);<br />
function my_custom_dashboard_widgets() {<br />
global $wp_meta_boxes;<br />
wp_add_dashboard_widget(&#8216;custom_help_widget&#8217;, &#8216;Theme Support&#8217;, &#8216;custom_dashboard_help&#8217;);<br />
}<br />
function custom_dashboard_help() {<br />
echo &#8216;&lt;p&gt;Welcome to Custom Blog Theme! Need help? Contact the developer &lt;a href=&#8221;heremailto:yourusername@gmail.com&#8221;&gt;here&lt;/a&gt;. For WordPress Tutorials visit: &lt;a href=&#8221;http://www.wpbeginner.com&#8221; target=&#8221;_blank&#8221;&gt;WPBeginner&lt;/a&gt;&lt;/p&gt;&#8217;;<br />
}</p></blockquote>
<h3>7，改变默认的 Gravatar 头像</h3>
<p>WordPress程序默认的 Gravatar 头像很不咋地，而且到处都是千篇一律的默认头像一点都无法体现独特性。你可以把以下代码添加到functions.php文件里面，然后记得把自定义的 Gravatar 头像上传到WordPress模板的images文件夹。</p>
<blockquote><p>add_filter( &#8216;avatar_defaults&#8217;, &#8216;newgravatar&#8217; );<br />
function newgravatar ($avatar_defaults) {<br />
$myavatar = get_bloginfo(&#8216;template_directory&#8217;) . &#8216;/images/gravatar.gif&#8217;;<br />
$avatar_defaults[$myavatar] = &#8220;WPBeginner&#8221;;<br />
return $avatar_defaults;<br />
}</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.inn823.com/2010/06/517/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>玩转WordPress “more”标签</title>
		<link>http://www.inn823.com/2010/06/489</link>
		<comments>http://www.inn823.com/2010/06/489#comments</comments>
		<pubDate>Wed, 16 Jun 2010 03:36:12 +0000</pubDate>
		<dc:creator>weweloo</dc:creator>
				<category><![CDATA[探讨]]></category>
		<category><![CDATA[more]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.inn823.com/?p=489</guid>
		<description><![CDATA[只要熟悉WordPress的用户都应该知道<!--more-->标签。在撰写文章时，你可以在文章的正文中插入<!--more--> 标签来创建文章摘要。这样文章里默认就会显示 “more…” 链接，读者点击它就可以阅读整篇文章。使用more标签时，在所有的非单篇文章浏览形式（如分类、标签和存档）下只会显示文章摘要，而只有在单片文章浏览形式下才会显示整篇文章内容。接下来我们就来看看下面的例子。]]></description>
			<content:encoded><![CDATA[<p>只要熟悉WordPress的用户都应该知道&lt;!&#8211;more&#8211;&gt;标签。在撰写文章时，你可以在文章的正文中插入&lt;!&#8211;more&#8211;&gt; 标签来创建文章摘要。这样文章里默认就会显示 “more…” 链接，读者点击它就可以阅读整篇文章。使用more标签时，在所有的非单篇文章浏览形式（如分类、标签和存档）下只会显示文章摘要，而只有在单片文章浏览形式下才会显示整篇文章内容。接下来我们就来看看下面的例子。<span id="more-489"></span></p>
<h3>如何使用more标签</h3>
<p>假设你有一篇文章内容如下:</p>
<blockquote><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio.<br />
Quisque volutpat mattis eros. Nullam malesuada erat ut turpis mattis.<br />
Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.</p>
<p>&lt;!-more-&gt;</p>
<p>Phasellus ultrices nulla quis nibh. Quisque a lectus. Donec consectetuer<br />
ligula vulputate sem tristique cursus. Nam nulla quam, gravida non dolor,<br />
commodo a semper suscipit, sodales sit amet, nisi adipiscing.</p></blockquote>
<p>那么在非单篇文章浏览形式下，你的文章将会这样显示:</p>
<blockquote><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio.<br />
Quisque volutpat mattis eros. Nullam malesuada erat ut turpis mattis.<br />
Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.<br />
more…</p></blockquote>
<p>而浏览单篇文章时，显示的内容如下:</p>
<blockquote><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Donec odio.<br />
Quisque volutpat mattis eros. Nullam malesuada erat ut turpis mattis.<br />
Suspendisse urna nibh, viverra non, semper suscipit, posuere a, pede.<br />
Phasellus ultrices nulla quis nibh. Quisque a lectus. Donec consectetuer<br />
ligula vulputate sem tristique cursus. Nam nulla quam, gravida non dolor,<br />
commodo a semper suscipit, sodales sit amet, nisi adipiscing.</p></blockquote>
<p>全文显示了这篇文章并且没有more链接。</p>
<h3>为何要使用more标签?</h3>
<p>主要是因为摘要显示很实用，你可以在主页上显示多篇文章摘要，这样读者不需要往下拉动页面太多就可以快速地浏览所有文章的大概内容。如果你的摘要吸引了读者的注意力，他们就会想接着阅读整篇文章，那么只要点击“more”标签创建的链接就可以了。因此，这里就给大家介绍几种自定义more链接的文本内容的方法。</p>
<h3>一篇一篇地自定义more标签文本</h3>
<p>想自行定义你的more链接文本，这里有两个好方法。最简单的一个就是，在文章内容插入more标签时自行加入自定义的文本内容。例如，需要将默认的more改成 “keep reading this post”，你就可以将平常用的&lt;!&#8211;more&#8211;&gt;标签替换为:</p>
<blockquote><p>&lt;!&#8211;more Keep reading this post&#8211;&gt;</p></blockquote>
<p>使用这种方法，你可以为 WordPress 中任何一篇文章的more标签设定独特的文本内容。这是WordPress一个非常讨人喜欢的地方，不过可能很多人还不知道。所以更多的人还是使用下面的方法来自定义每篇文章的more标签文本：</p>
<blockquote><p>&lt;?php $custom_more = get_post_meta($post-&gt;ID,  &#8220;custom_more_text&#8221;, true);<br />
if(!$custom_more) { $custom_more = &#8220;Keep reading  this post &amp;raquo;&#8221;; }<br />
the_content($custom_more); ?&gt;</p></blockquote>
<p>这段代码通过寻找自定义的一个叫做 “custom_more_text” 的字段，并将它的值显示为该文章的自定义more标签文本。</p>
<h3>统一定制more标签文本</h3>
<p>估计有人会嫌一篇篇地修改more文本的方式麻烦，其实也可以为整个网站的所有文章一起设定more标签文本。最简单常见的方法就是在 the_content() 模板标签里添加自定义文本：</p>
<blockquote><p>&lt;?php the_content(&#8216;Keep reading this post&#8217;); ?&gt;</p></blockquote>
<p>你甚至可以根据自己的需要给显示效果设定一个格式：</p>
<blockquote><p>&lt;?php the_content(&#8220;&lt;span &gt;Keep reading this post&lt;/span&gt;&#8221;);  ?&gt;</p></blockquote>
<p>我相信大多数WordPress内行人都对这个比较熟悉，也应该经常使用这种方法。不过还有一种方法也可以达到同样的效果，它是通过 functions.php文件来实现的。WordPress 2.8以后，我们可以使用新的filter hook来过滤整个网站的more标签文本:</p>
<blockquote><p>function my_more_link($more_link, $more_link_text) {<br />
return str_replace($more_link_text, &#8216;Keep reading this post&#8217;, $more_link);<br />
}</p>
<p>add_filter(&#8216;the_content_more_link&#8217;, &#8216;my_more_link&#8217;, 10, 2);</p></blockquote>
<p>首先进入你主题的 functions.php文件，然后将 “Keep reading this post”修改为任何你自己喜欢的more标签文本内容。这种方法没有对主题模板文件进行任何修改，非常适合想通过子主题来自定义more文本的用户。</p>
<h3>自动将文章题目显示在more标签中</h3>
<p>另外一个更酷的方法就是将文章题目放入到more链接文本里。例如，我们可以设置如下的效果:</p>
<blockquote><p>Lorem ipsum..</p>
<p>Continue reading “Lorem Ipsum Strikes Back”</p></blockquote>
<p>在more链接中加入你的文章题目，这样显得摘要更富有个性。代码如下:</p>
<blockquote><p>&lt;?php the_content(&#8220;&#8230;continue reading the story  called &#8221; . get_the_title(&#8221;, &#8221;, false)); ?&gt;</p></blockquote>
<p>就这样也行，不过下面的好像更简洁一点:</p>
<blockquote><p>&lt;?php the_content(the_title(&#8216;Continue reading &amp;ldquo;&#8217;,'&amp;rdquo;&#8217;,false)); ?&gt;</p></blockquote>
<p>如果你想在所有标签里显示相关文章的题目，那就用这个办法吧！</p>
<h3>阻止more链接跳转到页面的中间</h3>
<p>默认情况下，点击more链接将会将读者带到单篇文章浏览的形式，并且会转到more标签指定的位置。这样，如果你使用默认的more标签功能，读者点击more链接之后将会被带入到文章的半中间。曾经一段时间，大家比较接受这样的做法，不过，现在越来越人觉得还是直接打开文章页面不跳转到其他位置比较好。</p>
<p>总之一句话，如果你希望点击more标签后，打开进入的是文章页面的顶部，那么请在当前主题的functions.php文件，添加下面的代码:</p>
<blockquote><p>function remove_more_jump_link($link) {<br />
$offset  = strpos($link, &#8216;#more-&#8217;);<br />
if  ($offset) {<br />
$end  = strpos($link, &#8216;&#8221;&#8216;,$offset);<br />
}<br />
if  ($end) {<br />
$link  = substr_replace($link, &#8221;, $offset, $end-$offset);<br />
}<br />
return  $link;<br />
}</p>
<p>add_filter(&#8216;the_content_more_link&#8217;,  &#8216;remove_more_jump_link&#8217;);</p></blockquote>
<p>这样就可以阻止more链接的跳转，读者也不会觉得突兀。注意，此功能只适用于WordPress 2.8及以后的版本。</p>
<h3>用more标签来自定义页面</h3>
<p>more标签的主要用途是打开相关文章的独立浏览模式。但有时也不是这样的，你是否有需要将more链接的目标指向另一个不同的页面呢？为了更好地理解这一点，我们来看一下the_content() 模板标签里提供的参数:</p>
<blockquote><p>&lt;?php the_content($more_link_text, $strip_teaser, $more_file); ?&gt;</p></blockquote>
<p>这里，$more_link_text 参数定义了more链接使用的文本；$strip_teaser 参数定义了一个布尔值来决定是否显示more链接。第三个参数就是我们这里需要用到的参数。$more_file参数指定了more链接应该指向的URL 地址，默认情况下，这个 URL将会指向相关的单一文章浏览模式，但是我们也可以对它进行自定义:</p>
<blockquote><p>&lt;?php the_content(&#8216;Order Now!&#8217;, FALSE, &#8216;http://amazing-product.com/order-page.html&#8217;); ?&gt;</p></blockquote>
<p>或者其他任何你需要的URL地址，当然，很少人会这么使用，不过如果有人需要的话，是可以用上面的方法实现的。</p>
<h3>More标签的样式</h3>
<p>需要修改所有标签的样式，最简单的办法就是使用内置的分类属性。默认情况下， 所有WordPress more标签都会自动包含此分类。这样，你可以直接使用样式，例如：</p>
<blockquote><p>.more-link {<br />
border: thin solid black;<br />
letter-spacing: 1px;<br />
background: yellow;<br />
font-size: 24px;<br />
color: red;</p>
<p>}</p></blockquote>
<p>如果你还需要额外的其他属性，你可以通过the_content()模板标签来整合更多的自定义内容:</p>
<blockquote><p>&lt;?php the_content(&#8220;&lt;span &gt;Keep reading &lt;em&gt;this&lt;/em&gt;  post&lt;/span&gt;&#8221;); ?&gt;</p></blockquote>
<p>这样你就可以在CSS中使用下面的代码了：</p>
<blockquote><p>.custom-more {<br />
font-weight: bolder;<br />
}<br />
.custom-more em {<br />
font-weight: normal;<br />
font-style: italic;</p>
<p>}</p></blockquote>
<p>当然，上面只是一个简单的例子，你可以添加任何其他你需要自定义的内容。</p>
<h3>给more标签添加图片</h3>
<p>最后给大家介绍下给more标签添加图片的方法来结束这篇文章。第一种方法就是，直接在the_content( ) 模板标签里添加图片元素：</p>
<blockquote><p>&lt;?php the_content(&#8216;&lt;img  src=&#8221;http://domain.tld/read-more.png&#8221; alt=&#8221;Arrow&#8221;  title=&#8221;Read more&#8221; /&gt;&#8217;); ?&gt;</p></blockquote>
<p>这样你的more标签就会显示图片而不是文本了。你也可以添加一些文本，但是如果你不熟悉&lt;img&gt;元素的alt和title属性，你也可以完全绕开&lt;img&gt;元素，使用CSS来定制图片风格:</p>
<blockquote><p>.more-link img {<br />
background:url(http://domain.tld/read-more.png) no-repeat left center;<br />
padding: 10px;<br />
height: 100px;<br />
width: 300px;</p>
<p>}</p></blockquote>
<p>同样的，这也仅是一个例子，more标签还有很多用法，你可以尽情发挥自己的想象力。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.inn823.com/2010/06/489/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 手机浏览插件：MobilePress</title>
		<link>http://www.inn823.com/2010/06/475</link>
		<comments>http://www.inn823.com/2010/06/475#comments</comments>
		<pubDate>Wed, 16 Jun 2010 03:17:28 +0000</pubDate>
		<dc:creator>weweloo</dc:creator>
				<category><![CDATA[探讨]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[手机]]></category>

		<guid isPermaLink="false">http://www.inn823.com/?p=475</guid>
		<description><![CDATA[随着 3G 网络的发展，手机已经成为人们生活中越来越重要的网络终端，越来越多的人开始使用手机来浏览网页，但是很多网站其实并不是适合手机浏览，其中就包括我们大家使用 WordPress 构建的博客。以前我推荐使用 FeedM8  这个服务给博客创建适合手机浏览的版本，但是 FeedM8 毕竟是第三方服务，自己不能做太多的控制，并且还需要让用户记住你在 FeedM8 的地址和用户名，并不是很方便。其实对于 WordPress 博客的用户，我们可以使用 MobilePress 这款 WordPress 插件，让你的博客适合手机浏览，用户只需在手机浏览器中输入你博客的地址即可。]]></description>
			<content:encoded><![CDATA[<p>随着 3G 网络的发展，手机已经成为人们生活中越来越重要的网络终端，越来越多的人开始使用手机来浏览网页，但是很多网站其实并不是适合手机浏览，其中就包括我们大家使用 WordPress 构建的博客。以前我推荐使用 FeedM8  这个服务给博客创建适合手机浏览的版本，但是 FeedM8 毕竟是第三方服务，自己不能做太多的控制，并且还需要让用户记住你在 FeedM8 的地址和用户名，并不是很方便。其实对于 WordPress 博客的用户，我们可以使用 <a title="MobilePress" href="http://mobilepress.co.za/" target="_self">MobilePress </a>这款 WordPress 插件，让你的博客适合手机浏览，用户只需在手机浏览器中输入你博客的地址即可。<span id="more-475"></span></p>
<h3>MobilePress 介绍</h3>
<p>MobilePress 是一款 WordPress 插件，它首先通过浏览器的 User-Agent 判断出用户是否使用手机在浏览你的 WordPress 博客，然后它会给博客更换一款适合手机浏览的主题，让手机用户更好的浏览博客。</p>
<p>MobilePress 支持绝大多数手机，如 iPhone, Android, 黑莓, Windows CE, Nokia 等类型手机，和 Opera Mini, UCWeb 等手机浏览器。</p>
<h3>MobilePress 安装和使用</h3>
<p>MobilePress 安装非常简单，只要上传激活即可，也可以通过 WordPress 后台直接安装。</p>
<p>安装好 MobilePress 之后，在 WordPress 后台主菜单就多了一个 MobilePress 的菜单，他有两个子菜单：</p>
<p><strong>1.Options</strong></p>
<p>这里的 Blog Title 和 Blog Description 是让你给手机版本的博客设置一个博客标题和描述，留空使用原来默认已经设置好的博客标题和描述。</p>
<p>Force Mobile Site? 强制使用手机版，即使使用普通浏览器浏览也会显示适合手机浏览的主题。一般选择 no 了，普通浏览器用户还是希望给他看到更多精彩的展示。</p>
<p>接下来三项：</p>
<ul>
<li>Treat iPhone as a web browser?</li>
<li>Treat Windows smartphone as a web browser?</li>
<li>Treat Opera Mini as a web browser?</li>
</ul>
<p>意思是是否把用户在 iPhone, Windows CE, Opera Mini 这三种情况浏览你的博客作为普通浏览器用户，即显示默认设置的主题。这里一般还是选择 no，虽然 iPhone 手机已经强大和普通浏览器没有很大的区别，Opera Mini 对网页解析已经最够完美了，但是我们还是希望给手机用户一个简洁的主题，主题中图片更少，从另外一方面说，也是节省了带宽。</p>
<p><strong>2.Theme</strong></p>
<p>这里的 Theme 可以让你给不同的手机设置不同的主题，目前支持给 iPhone, Windows CE, Opera Mini 这三种手机或者手机浏览器设置专属的主题。目前 MobilePress 提供了 Mobile 和 iPhone 两款适合手机浏览的主题，当然你可以给自己的手机设置一款主题上传到该插件目录下的 themes 文件夹中。</p>
<h3>和 WP Super Cache 配合使用</h3>
<p>如果你的博客和我一样安装了 <a title="WordPress Super Cache" href="http://ocaoimh.ie/wp-super-cache/" target="_self">WP Super Cache</a> 这款插件，你需要开启 WP Super Cache 插件中的 Mobile device support 这个选项，即手机浏览情况下不缓存，MobilePress 插件才有效。为了确保该选项起作用，你应该检查下你的 .htaccess 文件中是否含有以下几行：</p>
<blockquote><p>RewriteCond %{HTTP_user_agent} !^.*(Android|2.0\ MMP|240&#215;320|AvantGo|BlackBerry|Blazer|Cellphone|Danger|DoCoMo|Elaine/3.0|EudoraWeb|hiptop|IEMobile|iPhone|iPod|KYOCERA/WX310K|LG/U990|MIDP-2.0|MMEF20|MOT-V|NetFront|Newt|Nintendo\ Wii|Nitro|Nokia|Opera\ Mini|Palm|Playstation\ Portable|portalmmm|Proxinet|ProxiNet|SHARP-TQ-GX10|Small|SonyEricsson|Symbian\ OS|SymbianOS|TS21i-10|UP.Browser|UP.Link|Windows\ CE|WinWAP).*</p></blockquote>
<p>普通缓存和 GZ 缓存都需要对应一行。</p>
<p>关于 MobilePress 就讲解那么多，下载地址：http://mobilepress.co.za/。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.inn823.com/2010/06/475/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

