K2自定义字段的定制输出

在目录\components\com_k2\template\下新建模板文件夹,一般操作是复制default文件夹,然后重命名就可以了。

但最好还是在你使用的模板文件的html文件夹下新建com_k2文件夹,然后把\components\com_k2\template\下的内容复制过去。

修改文章页面模板文件,即item.php

删除默认的字段显示方式(靠近200行位置):

<?php if($this->item->params->get('itemExtraFields') && count($this->item->extra_fields)): ?>
<!-- Item extra fields -->
<div class="itemExtraFields">
<h3><?php echo JText::_('Additional Info'); ?></h3>
<ul>
<?php foreach ($this->item->extra_fields as $key=>$extraField):?>
<li class="<?php echo ($key%2) ? "odd" : "even"; ?> type<?php echo ucfirst($extraField->type); ?> group<?php echo $extraField->group; ?>">
<span class="itemExtraFieldsLabel"><?php echo $extraField->name; ?>:</span>
<span class="itemExtraFieldsValue"><?php echo $extraField->value; ?></span>
</li>
<?php endforeach; ?>
</ul>
<div class="clr"></div>
</div>
<?php endif; ?>

然后手动添加每个字段显示,位置自定,字段显示的代码如下:

 <?php if($this->item->params->get('itemExtraFields') && count($this->item->extra_fields)): ?>   
<?php foreach ($this->item->extra_fields as $extraField):?>     
<?php if ($extraField->name=="你的字段名称"):?>  
<?php echo $extraField->name; ?>:<?php echo $extraField->value; ?>
<?php endif; ?>
<?php endforeach; ?>
<?php endif; ?>

如果你的字段名称为中文,请先将模板文件改为 utf-8  编码。


更新日期:2012年12月23日

使用K2 v2.6.1及更高的版本时,引用自定义字段会变得更加方便

输出字段的名称

$this->item->extraFields->EXTRAFIELDALIASHERE->name

输出字段的值

$this->item->extraFields->EXTRAFIELDALIASHERE->value

代码中的EXTRAFIELDALIASHERE是你创建字段时的别名。

当我们需要判断字段是否为空,当不为空时输出字段,可以使用此方法:

<?php if (!empty($this->item->extraFields->EXTRAFIELDALIASHERE->value)): ?>
<?php echo $this->item->extraFields->EXTRAFIELDALIASHERE->name ; ?>
<?php echo $this->item->extraFields->EXTRAFIELDALIASHERE->value ; ?>
<?php endif; ?>