Php 根据Drupal 7中的分类术语或id打印链接
我在Php 根据Drupal 7中的分类术语或id打印链接,php,drupal,drupal-7,drupal-theming,Php,Drupal,Drupal 7,Drupal Theming,我在page.tpl.php上有一个链接列表,我希望在使用一个分类术语id的节点上显示一个链接。分类术语id为9 前 | | 有人能帮忙吗 谢谢 在主题的template.php中;使用(),您的代码应该是这样的 function [YOUR_THEME]_preprocess_page(&$vars) { if(isset($vars['node'])) { $node = $vars['node']; $nodeLanguage
page.tpl.php
上有一个链接列表,我希望在使用一个分类术语id的节点上显示一个链接。分类术语id为9
前
- |
- |
有人能帮忙吗
谢谢 在主题的
template.php
中;使用(),您的代码应该是这样的
function [YOUR_THEME]_preprocess_page(&$vars)
{
if(isset($vars['node']))
{
$node = $vars['node'];
$nodeLanguage = "und"; // or use any language
if(isset($node->field_YOUR_FIELD_REFERENCE[$nodeLanguage]))
{
foreach($node->field_YOUR_FIELD[$nodeLanguage] as $key => $val)
{
if($val['tid'] == "9")
$vars['found_my_term'] = true;
}
}
}
}
然后,在页面模板中page.tpl.php
:
<?php if($found_my_term) { ?>
<li><a href=">PRIVATE PAGE</a> </li>
<?php } else { ?>
<li><a href="">PUBLIC PAGE</a> </li>
<?php } ?>
代码是关于检查当前页面是否是节点页面
,然后检查节点是否有您的分类字段引用
(在这个代码示例中,我使用字段(您的字段)引用
作为字段名),最后检查其值是否为9
如果是这样,您将结果存储在一个变量中(我称之为
found\u my\u term
),以便您可以在页面模板中使用。谢谢,穆罕默德·雷达。你的理解是正确的。我试过你的代码,但出于某种原因,它只显示“公共页面”。注:我更正了私人页面链接中缺少的“ID”。我不确定术语ID,但这是该术语的屏幕截图-。我可能错了?基本上术语“私人合作伙伴”在URL中有/content/PRIVATE/*,而“公共页面”中有/content/PRIVATE/*“不要。再次感谢你@莉莎;仅当您位于分类术语9页面上时,上面的代码才会显示到私人页面的链接您的站点\u URL/taxonomy/term/9
哦,对不起。我放错了指示。我希望在所有使用分类术语“Partner PRIVATE”的页面上显示链接“PRIVATE PAGE”,如果没有,则显示“PUBLIC PAGE”。你还能帮我吗?我不擅长PHP。谢谢谢谢,穆罕默德·雷达。出于某种原因,我得到了这个错误“Parse error:syntax error,unexpected T_ENDIF in page.tpl.php”,再次感谢您的更改删除了错误,但不幸的是,代码没有按预期工作。它只是在整个网站上显示公共页面。我已经清除了系统的缓存。顺便说一句,我正在使用D7。Drupal有各种方法来控制对特定页面的访问,我不确定使用分类法是最好的方法。。。
<?php if($found_my_term) { ?>
<li><a href=">PRIVATE PAGE</a> </li>
<?php } else { ?>
<li><a href="">PUBLIC PAGE</a> </li>
<?php } ?>