<?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>The Townes &#187; 特定用户阅读</title>
	<atom:link href="https://thetownes.coolpage.biz/?feed=rss2&#038;tag=%E7%89%B9%E5%AE%9A%E7%94%A8%E6%88%B7%E9%98%85%E8%AF%BB" rel="self" type="application/rss+xml" />
	<link>https://thetownes.coolpage.biz</link>
	<description>本站已转移至：http://www.thetownes.info</description>
	<lastBuildDate>Thu, 01 Aug 2013 11:49:56 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.2</generator>
		<item>
		<title>WordPress设置文章只允许特定用户阅读</title>
		<link>https://thetownes.coolpage.biz/?p=264</link>
		<comments>https://thetownes.coolpage.biz/?p=264#comments</comments>
		<pubDate>Sat, 13 Jul 2013 02:09:58 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[特定用户阅读]]></category>

		<guid isPermaLink="false">http://thetownes.coolpage.biz/?p=264</guid>
		<description><![CDATA[现在WordPress已经不仅仅是一个博客了，更多时候很多人都把WordPres &#8230; <a href="https://thetownes.coolpage.biz/?p=264">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>现在WordPress已经不仅仅是一个博客了，更多时候很多人都把WordPress当功能强大的CMS使了，WordPress之所以越来越 受欢迎，主要在于它强大的扩展性以及良好的社区支持，看看我博客里的WordPress教程就知道了。今天，我将给你介绍一个新的WordPress扩展 功能，文章只允许特定用户阅读。如果你不喜欢此功能，可以忽略以下内容！</p>
<p>WordPress本身也提供了相应功能来实现这个目的，包括文章私有和文章加密等，但是这些功能都比较大一，如何限定授权用户和文章的范围呢？本文将给你介绍这方面的内容。</p>
<p>&nbsp;<img class="alignnone" alt="" src="http://farm8.staticflickr.com/7423/9271288901_01314f17dd.jpg" width="500" height="160" /></p>
<h4 id="title-0">某个分类/标签的文章只允许登陆用户阅读</h4>
<p>网站的访客最基本的可以分成两类，一类是非注册用户，另一类是登陆用户，很多论坛的就是这样区分用户，部分内容只能登陆后查看，之前我写了一个插件<a title="WordPress插件:隐藏内容登陆后可见" href="http://www.ludou.org/wordpress-plugin-login-to-view-all.html" target="_blank">Login to view all</a>来让WordPress来实现类似功能，但是只能对单篇文章起作用，如果想要实现某个分类/标签的文章只允许登陆用户阅读，可以用文本编辑器打开当前主题目录下的single.php，查找：<code>the_content</code>，可以找到类似代码：<code>the_content(...)</code>，（注：…表示未知内容，不同主题不太一样），将其改成：</p>
<div>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
16</div>
</td>
<td>
<div>/**<br />
* 名称：WordPress某个分类/标签的文章只允许登陆用户阅读<br />
* 作者：露兜<br />
* 博客：http://www.ludou.org/<br />
* 最后修改：2010年12月30日<br />
*/&nbsp;&nbsp;</p>
<p>if( in_category(&nbsp;<a href="http://www.php.net/array">array</a>( ‘music’, ‘news’ ) ) ) {<br />
if(is_user_logged_in())<br />
the_content(…);<br />
else<br />
echo ‘请登陆后阅读本文!’;<br />
}<br />
else {<br />
the_content(…);<br />
}</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<p>这样分类别名或名称为 music 和 post 的分类下的文章内容就只对登陆用户开放了，游客将会看到提示”请登陆后阅读本文!”，如果你想再添加一个分类images，可以将&nbsp;<code>array( 'music', 'post' )</code>&nbsp;改成<code>array( 'music', 'post', 'images' )</code>，更多依次类推；如果只限定一个分类music可以写成&nbsp;<code>in_category( 'music' )&nbsp;</code>。如果是限定含有某些标签的文章只对登陆用户开放，可以将以上代码第一行改成：</p>
<div>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1</div>
</td>
<td>
<div>if( has_tag(&nbsp;<a href="http://www.php.net/array">array</a>( ‘music’, ‘news’ ) ) ) {</div>
</td>
</tr>
</tbody>
</table>
</div>
<p>music和news为标签的名称或别名，多个标签的写法跟分类相同！</p>
<h4 id="title-1">某个分类/标签的文章只允许特定角色的注册用户阅读</h4>
<p>WordPress站点的注册用户还可以分三六九等，包括订阅者、投稿者、管理员等等，对于已经登陆的注册用户，同样可以根据用户的角色来决定是否有权阅读文章，在第一部分内容的基础上再加个限制条件就可以了，将第一部分代码的第 2 行改成：</p>
<div>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11</div>
</td>
<td>
<div>/**<br />
* 名称：WordPress某个分类/标签的文章只允许特定角色的注册用户阅读<br />
* 作者：露兜<br />
* 博客：http://www.ludou.org/<br />
* 最后修改：2010年12月30日<br />
*/&nbsp;&nbsp;</p>
<p>global $current_user;<br />
get_currentuserinfo();</p>
<p>if(is_user_logged_in() &amp;&amp; $current_user-&gt;user_level &gt; 3)</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<p>这样等级小于 3 的注册用户将无权阅读分类music和news下的文章，文章标签的限定类似，详见第一部分的说明。WordPress注册用户的等级参见以下说明：</p>
<ul>
<li>0 级对应&nbsp;<strong>订阅者</strong></li>
<li>1 级对应&nbsp;<strong>投稿者</strong></li>
<li>2 – 4 级对应&nbsp;<strong>作者</strong></li>
<li>5 – 7 级对应&nbsp;<strong>编辑</strong></li>
<li>8 – 10 级对应&nbsp;<strong>管理员</strong></li>
</ul>
<h4 id="title-2">某个分类/标签的文章只允许知道密码的用户阅读</h4>
<p>如果你想给某个分类或标签下的文章全部添加密码，只有知道密码的用户才能阅读这些文章，你可以使用我写的WordPress插件：<a title="WordPress插件=:文章批量加密解密" href="http://www.ludou.org/wordpress-plugin-post-encryption-and-decryption.html" target="_blank">Post Encryption And Decryption</a>，或者看这篇教程操作：<a title="WordPress加密某个分类的所有文章" href="http://www.ludou.org/wordpress-encrypt-all-articles-of-a-category.html" target="_blank">WordPress加密某个分类的所有文章</a></p>
<h4 id="title-3">搜索引擎收录说明</h4>
<p>按照以上各方法修改后，搜索引擎将无法收录这些文章，如果你希望搜索引擎收录这些文章同时又限定用户范围，可以再添加一个限定条件，将第一部分代码的第 2 行改成：</p>
<div>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<div>1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
16<br />
17</div>
</td>
<td>
<div>/**<br />
* 名称：WordPress设置文章只允许特定用户阅读，搜索引擎检测<br />
* 作者：露兜<br />
* 博客：http://www.ludou.org/<br />
* 最后修改：2010年12月30日<br />
*/<br />
function is_se() {<br />
$u_agent = $_SERVER['HTTP_USER_AGENT'];<br />
$spiders = ‘/(spider|bot|slurp|Mediapartners|crawl)/i’;&nbsp;&nbsp;</p>
<p>if (&nbsp;<a href="http://www.php.net/preg_match">preg_match</a>($spiders, $u_agent) )<br />
return 1;<br />
else<br />
return 0;<br />
}</p>
<p>if(is_user_logged_in() || is_se())</p>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<p>限制标签、用户等级等的修改方式一样！另外，如果你的Feed是全文输出的话，其他用户还是可以通过订阅看到相关的内容的！最后一点，以 上所做的修改不是完全隐藏文章，所有用户都可以看到文章的标题，如果你想让未授权的用户连标题都看不到，请自行解决，或者可以参考下文：<a title="WordPress技巧: 对游客隐藏部分文章" href="http://www.ludou.org/wordpress-hide-post-for-not-login-in-user.html" target="_blank">WordPress技巧: 对游客隐藏部分文章</a></p>
<h4 id="title-4">回复或登录可见</h4>
<p>如果你想隐藏文章的部分内容（如猜谜游戏的谜底），让读者登录后才可查看隐藏的内容，可以使用这款插件：<a title="Login to view all" href="http://www.ludou.org/wordpress-plugin-login-to-view-all.html" target="_blank">Login to view all</a>。如果你是想让读者回复后才可以阅读隐藏的内容，可以用这款插件：<a href="http://wordpress.org/extend/plugins/easy2hide/">Easy2hide</a></p>
]]></content:encoded>
			<wfw:commentRss>https://thetownes.coolpage.biz/?feed=rss2&#038;p=264</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
