另一种方法是使用 PHP。你可以在你的主题文件夹中创建一个文件node.tpl.php,从garland主题中复制它。然而,在它的顶部,添加这个调用:
require_once('node_hooks.php');
现在在您的主题文件夹中创建一个文件node_hooks.php 。现在,这为您提供了对给定节点的巨大权力。您应该通过在node_hooks.php文件中执行此操作来开始学习$node变量:
<?php
print_r($node);
刷新您的节点页面,然后在浏览器中查看源代码。这将显示 $node 中的对象和每个数组元素。
在我的例子中,我有一个类型为“staff”的节点,因为我在创建它时就是这么称呼它的。我还有一个名为 CCK Email 的特殊 CCK 字段,并用它创建了一个名为field_staff_email的字段。这是存储像 jonathan@test.com 这样的值。因此,因此,我可以将其添加到我的node_hooks.php文件中以对内容进行搜索和替换,以便我得到“联系乔纳森”而不是电子邮件地址:
<?php
if ($node->type == 'staff') {
adjustStaffContactField($node, $content);
}
function adjustStaffContactField(&$node,&$content) {
$asWords = explode(' ',$node->title);
$sContact = htmlentities(strip_tags($asWords[0]));
$sContact = trim($sContact);
$sContact = "Contact $sContact";
$sLink = $node->field_staff_email[0]['email'];
$sContact = "<a href='mailto:$sLink'>$sContact</a>";
$sLookingFor = "<a href=\"mailto:$sLink\">$sLink</a>";
$content = str_replace($sLookingFor, $sContact, $content);
}