站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
WordPress向页头添加文章Feeds
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
<span style="border:1px solid #000; text-align:center; float:right; padding:6px;"><strong>导航:</strong> [[WordPress进阶使用|上一页]] | {{Template:WordPress导航}}</span> <div style="clear:both;"></div> WordPress系统为博客中每篇日志生成一个独一无二的[[RSS]]订阅地址,我们可以从日志下方的日志元数据部分进入日志的订阅地址。但为了能够最大程度地利用RSS订阅,我们可以添加一个能够指向订阅地址的[http://www.w3.org/TR/REC-html40/struct/links.html#h-12.3 链接]元素,告诉浏览器、网络机器人以及任何访问页面的人——这是一个RSS订阅,不是传统的XML文件。 不过WordPress目前还没有这项功能,我们只能自己寻找解决方法。这篇文章会给出解决代码并给出相应说明。<STRONG>如果不想了解代码的前因后果,只想尽快使用代码,请直接转到文章结尾部分</STRONG>——最终代码。 ==问题所在== 我们需要做的是:在页头部分添加一个可以将读者指向日志订阅地址的link元素,该元素需要随读者所浏览的页面而变化,并且如果当前页面不是日志,不得生成订阅地址。为了连接到日志系统,我们不得不利用[http://www.wordpress.la/codex-WordPress%E4%B8%BB%E5%BE%AA%E7%8E%AF.html 主循环]从数据库中获取相关数据。 从逻辑上来说,从当前日志元数据代码中复制元数据所用的命令就可以生成我们需要的链接。然而comments_rss_link()的输出结果是一个HTML“锚”链接(a href),这显然不是我们想要的结果。锚链接用以链接页面元素,但我们需要链接的内容却不是页面上的任何一部分。 ==链接元素== link元素包含在页面的页头信息中,可以链接到页面外的一些内容。我们可以多了解一些不同页面上的页头信息。RSS订阅的基本格式是: <link rel="alternate" type="application/rss+xml" title="Feed Title" href="Feed Location" /> rel元素向读者表明当前链接内容。rel元素接收多个值:这里的alternate表示链接指向当前页面的另一种形式——订阅。alternate也可以表示当前页面的其它语言版本等其它意思。所提供的alternate页面的类型需要在type中定义并自我说明。接下来是title部分,title与其它文档中的title功能相同,定义页面的标题;最好定义一个友好的标题,而不仅仅是链接资源的位置。最后,href表明链接对象在网络中的位置,即URL地址。最后关闭标签。 ==变量== 当然以上XHTML代码还不够,除非整个博客上只有一篇日志。我们必须让link值反映出它们所在的页面,在PHP中这个过程由一个替代系统完成。在系统中输入PHP代码,当页面生成时,WordPress用我们所请求的数据代替这些PHP代码。 有三片数据需要被取代: *订阅标题 *博客地址 *当前日志ID 以下变量可以完成这个取代过程: *the_title() *bloginfo('url') *the_ID() 希望在哪个位置上显示这些数据,就在相应的代码中插入这些变量,剩下的就可以由WordPress来做了。尽管如此,我们需要告诉WordPress,我希望以怎样的方式解析命令,不能只是简单地输出文本信息。为了达到目的,我们要用变量围绕<?php and ?>,同时出于对编程方面的考虑,在某些特殊情况下需要在每一行的结尾部分添加一个分号。 插入变量后: <link rel="alternate" type="application/rss+xml" title="<?php the_title(); ?> Comments" href="<?php bloginfo('url'); ?>/?feed=rss2&p=<?php the_ID(); ?>" /> 注意:这里将href中的 '&'改为 &amp;。在X[[HTML]]中符号&不是合法字符,而&amp;作为&的“编码”形式,与它效果相同却不会引起浏览器出错。 ==主循环== 现在我们已经完成了对链接的设置,链接的各个[[关键字]]段也都由能够自动填充的代码所代替。但是变量必须在WordPress的[http://www.wordpress.la/codex-WordPress%E4%B8%BB%E5%BE%AA%E7%8E%AF.html 循环]中运行。[http://www.wordpress.la/codex-WordPress%E4%B8%BB%E5%BE%AA%E7%8E%AF.html 这里]有关于WordPress主循环的详细介绍。即使阅读完介绍仍然一头雾水也不必担心。这里的用法并没有那么复杂。 理想状态下我们会把代码添加到已有的主循环中,主循环中已经提供了日志、评论等信息。在某些浏览器中这是可行的,但对我们现在的目标来说,这个办法行不通。默认主循环完全包含在页面的正文部分里,link元素则在页眉中。把代码放在正文部分显然不是个好提议,最终会引发各种各样的问题。 我们需要创建一个新循环,别担心,这并不难: <?php while (have_posts()) : the_post(); ?> <?php endwhile; ?> 这样就产生了一个次循环。把链接代码复制到循环的两行代码之间,循环就可以运行了。 问题只有一个。由于WordPress循环的运行方式,如果只有以上代码,我们的确能在页面的页眉部分找到正确的订阅地址,但页面的主体部分,也就是读者真正要阅读的日志正文,紧接着也会在数据库的调用下出现在页眉部分。这当然不是我们想要的结果。幸好解决方法也并不复杂: <?php rewind_posts(); ?> 这样,新循环就算完整了。 ==条件标签(if语句)== 现在link元素已经设置完毕,link里的数据也做了相应替换,能够连接到数据库而不引起任何问题。但这时如果我们加上一些代码,link元素会在博客所有页面上被执行,即使是非日志页面。这本身不会带来任何坏处,但会使读者产生疑惑。我们要告诉WordPress:只需要在日志页面中添加link元素。可以用条件标签(即程序开发人员所知的“if语句”)来实现这一效果。 <?php if (is_single()) { ?> <?php } ?> 于是只有is_single()为真(页面为日志页面)时,代码才会被执行。所有设置都已经完成! ==最终代码== <?php if (is_single()) { ?> <?php while (have_posts()) : the_post(); ?> <link rel="alternate" type="application/rss+xml" title="<?php the_title(); ?> Comments" href="<?php bloginfo('url'); ?>/?feed=rss2&p=<?php the_ID(); ?>" /> <?php endwhile; ?> <?php rewind_posts(); ?> <?php } ?> 大功告成!将代码复制到header.php中(考虑到阅读上的方便,最好是在网站已有订阅文件旁),这样[[博客]]上每篇日志都能将日志的订阅地址正确通知浏览器、网络机器人以及任何访问页面的读者。这自然比元数据中不起眼的小链接要方便得多。如果设置成功,在[[Firefox]]浏览器的<STRONG>地址栏</STRONG>中点击<STRONG>活动书签</STRONG>时,会出现两个选项。如果没有出现两个选项,说明设置时操作出错,需要重新设置。查看页面源代码能够帮助我们更快地找出出错原因。 ==相关条目== *[[Drupal]] *[[OBLOG]] *[[X-Space]] *[[SaBlog-X]] *[[Bo-Blog]] [[category:WordPress中文文档|X]] [[category:WordPress使用|X]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:WordPress导航
(
查看源代码
)(受保护)