海淀做网站:解WordPress‘Comms.php的秘密

2019.05.27 海淀做网站

83

中最重要的模板之一WordPressInstallation是“Comms.php”模板文件,它与分发给世界上最流行的内容管理解决方案的几乎每一个主题配对使用。每天有6,000多万人依赖这个基本的模板文件来鼓励用户的交互和交流。

但是,令人惊讶的是,很多WordPress网站管理员从未真正深入这个文件并学习如何修改或定制它以满足他们的需求。这相对令人惊讶,尤其是在WordPress博客上有很多不同的方式来使用和鼓励用户评论。的确,在过去十年中使用了某种注释公式,但模板的样式也很复杂,评论可以元内容作为补充,而且站点的参与度实际上可以从默认的方式改进到评论。

然而,海淀做网站为了提交这些更改,WordPress网站管理员需要熟悉评论模板文件,并了解他们可以使用一点点PHP代码、一些WordPress变量和一些XHTML修改来做什么,这些修改可以使评论部分变得更有情趣,并使其成为任何网站中最活跃的部分之一。那些希望鼓励更多用户参与并将更多的访问者转化为常规读者的WordPress用户应该继续学习本教程,使用PHP、XHTML和WordPress变量来改变他们在评论一个典型的帖子或页面时的业务方式。

确保评论模板文件的安全并保护网站免受攻击

每个条目的注释表单存储在comments.php“文件,但当该文件未与网站内条目的独立页面配对时,不适合访问该文件。具有WordPress经验的智能阅读器,或任何知道如何利用WordPress模板的恶意用户,都可以单独使用该文件发布可恶的评论、执行恶意操作或以其他方式损害网站的安全性或完整性。幸运的是,只有当该文件没有受到保护,并且几乎每个访问者都可以访问该网站时,这才是可能的。有几种方法可以确保不存在这种情况,只需根据文件的位置和在独立帖子页面之外访问时是否存在管理员密码来提供文件指示。

保护此文件的第一种方法是检查页面是否作为模板的一部分被访问,还是通过URL访问到“comments.php“档案。如果后一种情况为真,脚本将“,“一个PHP术语,意思是它不会运行,也不会向外界显示它中的任何信息。当脚本有效地“死”时,它将向最终用户显示一条消息,指示如果不与POST配对就无法访问它。此消息是可自定义的,在这里可以在操作中看到:

<?php if(!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME'])) : ?><?php die('The comments template cannot be accessed outside of an entry. Nice try!'); ?><?php endif; ?>

一些WordPress条目在发布时受到网站管理员的密码保护,只有那些拥有指定密码的用户才能访问它们。即便如此,如果其他用户足够聪明地绕过密码并将注释模板视为独立文件,则这些条目上的注释通常可以被其他用户访问和修改。这不是一个好的解决方案,它可能导致重大的隐私问题。为了确保只有海淀做网站在网站其他地方提供了相关的输入密码时,才会显示注释,请将以下代码行放在文件的顶部。它应该就在上面所示代码行的下面:

<?php if(!empty($post->post_password)) : ?><?php if($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) : ?><?php endif; ?><?php endif; ?>

将这两行代码粘贴到“comments.php“模板文件,恶意用户将无法在没有适当权限的情况下访问注释。无论这意味着不以独立页面的形式访问注释文件,还是需要输入密码或帖子,该文件都将被锁定,这两个片段直接放在模板的顶部。现在是时候关注与评论相关的实际变量了,这些变量可以在一定程度上改变模板的显示方式和功能。

在WordPress仪表板中使用评论审核设置

海淀做网站

在一个时代“垃圾邮件评论“是第二天性,并且像WordPress AKismet插件必须每天都有工作,这是一个好主意,至少要求某种程度的温和意见。也许最建议的选择是要求那些其电子邮件地址与该网站的任何帖子之前的评论无关的人的评论得到批准。这是最好的解决方案,因为它允许“已知”读者互动,但需要新的读者证明自己是非垃圾邮件。当启用此设置时,默认情况下,评论将显示为张贴,但在批注获得批准之前,它们不会显示给网站管理员以外的任何人。

对于那些发布第一条评论的读者来说,这种默认行为是相当令人困惑的,他们不知道适度的过程。他们会相信,他们的评论被添加到混合,因为它似乎是。然而,由于没有人对他们的评论做出回应,他们会觉得自己被排挤了,或者觉得有些地方不对劲。若要更改此行为,可以使用一个简单的条件变量向那些为适度保存评论的用户显示一条特殊消息。看起来是这样的:

<?php if ($comment->comment_approved == '0') : ?>

在这个变量中,使用一个简单的“1”或“0”来控制显示的内容。在这种情况下,零表示注释未被批准。这是这个变量的理想实现,因为网站只需要向那些没有立即添加到讨论中的用户显示一条消息。如果一个注释被批准,它将简单地出现在其他注释的组合中,而不需要视觉通知。上面的变量与一个传统的PHP“endif”语句一起使用,它可以用来向需要的评论者显示简短的消息。以下是如何做到这一点:

<div class="comment-box"><?php if ($comment->comment_approved == '0') : ?><p>Your comment is currently awaiting approval by the website's administrator and it will not appear here until that approval has been granted. You will receive an email when the comment has been approved. Feel free to read comments in the meantime!</p><?php endif; ?></div>

这个信息很清楚,很简单,而且很关键,那些拥有适度评论的用户将不再需要怀疑为什么他们的意见似乎比其他人的价值要低。事实上,这条消息甚至可以被修改,以解释为什么和什么时候评论是温和的。用户可能想知道,因为他们是新来的,所以他们只是为了节制而被拘留,而这并不是针对个人的。可以随意定制所需的消息。

将高级WordPress功能自动添加到注释表单中

实际上,海淀做网站在WordPress的第一个版本中,注释形式包含在comments.php“模板总是使用带有WordPress特定表单ID的传统XHTML表单构造手动生成的。当然,这种方法仍然有效,目前在世界上绝大多数WordPress博客上都采用了这种方法。

话虽如此,但WordPress背后的开发人员的自动化团队最近对WordPress评论表单在更新模板上的生成方式进行了相当大的改变。这实际上包括将整个表单分配给自己的WordPress PHP变量,然后允许仪表板动态呈现该表单,甚至可能将其组合的部分外包给WordPress服务器或Jetpack插件自己的服务器来整合社交媒体。

对于WordPress软件的过去几个版本,下面的变量包含了这个更具动态性和前瞻性的评论表单:

<?php comment_form() ?>

本评论表格最初是由网站范围内制作的。“functions.php“位于WordPress中的文件”wp-includes“目录。这是一个静态注释表单,生成的XHTML与手动包含在大多数主题的注释模板文件中的XHTML相同。然而,将整个表单分配给PHP变量的好处是插件可以很容易地修改这个表单并将其转化为完全不同的东西。

如何做到这一点的最佳示例是官方的WordPress Jetpack插件。自动机开发团队。这个插件为自我托管的安装带来了许多WordPress.com博客功能,包括登录WordPress.com帐户的能力,脸书帐户,或推特个人资料,当作出评论。这样做将允许WordPress在评论中显示非站点配置文件的图片、名称和其他信息,而无需向用户显式请求。此功能仅与注释表单变量兼容。

启用此Jetpack功能后,立即将评论分配给外部网站,并将其放置在iframe结构中,该结构允许将社交媒体与其默认名称、URL和电子邮件地址字段进行集成。开发人员不需要进行任何编程工作。此外,表单由非现场样式表以光、暗或不可见的颜色设计,这意味着它将始终完美地集成到WordPress安装中,而不需要大量的自托管样式表或表单代码本身更复杂的定制。

编辑注释而不通过WordPress仪表板分页

有时,一个注释可能是不一致的,或者它可能只是要求一个错误或语法错误是固定的。在大多数情况下,这会将管理员发送到WordPress仪表板,在那里他们将点击几个管理页面,以便找到相关的注释,并对其内容或其他信息进行快速编辑。虽然这不一定是“浪费时间的管理例程”的最坏情况,但对于大多数WordPress网站管理员来说,这仍然是一种浪费时间的情况。为了解决这个问题,WordPress允许在注释中放置一个变量,该变量直接链接到仪表板中的编辑页面:

<?php edit_comment_link('Edit Comment'); ?>

别紧张,对吧?这肯定比浏览仪表板查找注释容易得多,而且它只会显示给管理员用户或组中具有编辑注释的适当权限的其他用户。当一个典型的网站读者正在仔细阅读评论,它将只是隐形和隐藏在幕后。

使用不同颜色的样式注释

增加一长串注释的可读性的最佳方法之一是为每个注释的文本块替换背景颜色。这可以通过将一个典型的WordPress PHP函数插入到注释模板文件的顶部,然后在需要时使用PHP变量调用该函数。那些希望这样做的管理员应该将以下文本块放在模板的顶部:

function row_colors($i){if($i % 2) {echo ' class="alt"';} else {echo '';}}

然后,他们需要将这个新函数调用到模板文件中,这样它就可以动态地确定每个注释的背景色。这是通过在注释的周围放置以下代码来完成的⊙li>标签:

<?php $i++; ?><li<?php row_colors($i); ?> id="comment-<?php comment_ID(); ?>">

该代码取代了标准的开头⊙li>标记中,这些注释将受到前面创建和放置的函数的“计数”。永远双数的注释将被赋予背景颜色,而那些带有奇数的将被保留为空白或白色。当然,通过对当前主题的样式表进行简单编辑,这两种颜色都可以更改为网站管理员的喜好。

很多增强网站评论的好方法

海淀做网站很容易看出注释模板文件实际上是任何给定主题中最高级和可定制的模板之一。有了新的注释表单变量、密集的安全措施以及基于PHP变量自定义输出的能力,以及是否有管理员登录,评论模板文件就可以用于创建一个动态和令人兴奋的用户参与环境。


最新案例

寒枫总监

来电咨询

18868949445

微信咨询

寒枫总监

TOP