织梦添加和调用自定义字段的方法
织梦自定义字段要想在任何位置任何模版中调用或者在{dede:list }和{dede:arclist }标签中调用,需要特殊设置。
自定义字段就是列表附加字段自定义的字段。
一,织梦如何添加自定义字段
网站后台》核心》频道模型》内容模型管理》选择要添加自定义字段的频道模型,这里以图片集频道举例
注意:创建字段,前台参数这里“使字段可以在列表的底层模板中获得”这个必须勾选
在字段管理》添加新字段中添加(价格属性)
在基本设置里》列表附加字段中添加jiage(可以在列表模板{dede:list}{/dede:list}中用[field:name /]调用)
二,织梦如何调用自定义字段
1、在{dede:list }中调用
{dede:list pagesize='5' addfields='jiage' channelid='2'}
<P>标题:[field:title/]</P>
<P>价格:[field:jiage/]</P>
{/dede:list}
说明:addfields='jiage'指定要获得的字段 addfields='字段1,字段2'
channelid='2'指定 channelid 属性(内容模型的id值)图片模型的ID为2
2、在{dede:arclist }中调用
{dede:arclist typeid='3' row='4' addfields='jiage' channelid='2' }
<P>标题:[field:title/]</P>
<P>价格:[field:jiage/]</P>
{/dede:arclist}
3、单独调用
价格:{dede:field name='jiage'/} a
关于dedecms在内容页(详情页)调用内容模型自定义字段方法,前面试过了很多方法都不行,要不就是调用的数据都是一样的,就是以当前列表的形式显示出来,搞的很郁闷。。
网上最常见的方法是这样的 {dede:arclist addfields='name,sex,age'row='10' channelid='15'orderby='id' } ,但是都行不通,这个方法只适合在列表页调用。。{dede:field.字段名'}其实没必要把问题想的那么复杂了,答案很简单的。。只需要在内容页相应的位置用{dede:field name='字段名'/}调用就可以了!前面的那些都不要。。
--------------------------------------------------
织梦DedeCMS自定义字段也就是添加了个附加的表,要调用附加表的内容,织梦官网给的解释文档说的是:
要获取附加表内容,必须符合两个条件
1、指定channelid属性,即channelid='内容模型id'
2、指定要获得的字段,即addfields='字段1,字段2'
如下面的调用代码:
{dede:arclist addfields="filetype,language,softtype" channelid='3'}
[field:textlink /] - [field:softtype /]
{/dede:arclist}
通过这个例子,很让人费解。
这样解释下就容易明白了
{dede:arclist addfields='附加字段1,附加字段2,附加字段3' channelid='内容模型id号'}
[field:textlink /] - [field:附加字段1/] - [field:附加字段2/] - [field:附加字段3/]
{/dede:arclist}
这样就能轻松实现在全站任意地方的列表调用文章的自定义字段了。
-----------------------------------
dedecms织梦首页调用自定义字段的方法
在仿站时,我们常常会自定义很多字段,那么如何在首页调用呢,下面给出方法:
一、指定 channelid 属性(channelid='17' 17是指内容模型里面指定的模型ID)
二、指定要调用出来的字段 addfields='字段1,字段2' (字段1和字段2 中间请用字母的逗号 ,)
注意:必须要添加上面两个条件才可以。
例:
{dede:arclist typeid='7' row='7' orderby='pubdate' addfields='icons' channelid='17'}
<li><a href="[field:arcurl/]" target="_blank">
<div class="icon a-[field:icons/]"></div>
<h4>[field:title/]</h4>
</a>
</li>
{/dede:arclist}
------------------------------------
DedeCMS搜索结果页面调用自定义字段的方法
有时候在我们需要在dedecms的搜索结果页面调用自定义字段,尤其是在做下载站的时候,需要在搜索结果页调用软件大小以及软件等级等等,但是我们发现在搜索结果页模板中使用“[field:字段名]”标签无法正确调用,就算添加了列表附加字段也不行。
这里,织梦58就教大家如何在搜索结果页调用自定义字段,具体方法及步骤如下:
找到并打开include目录下的extend.func.php文件,在文件末尾添加如下代码:
function Search_addfields($id,$result){
global $dsql;
$dedejs = $dsql->GetOne("SELECT * FROM `dede_addonsoft` where aid='$id'");
$name=$dedejs[$result];
return $name;
}
其中addosoft是要调用自定义字段的附加表,在织梦后台核心->频道模型->内容模型管理可以看到,软件模型一般是addonsoft,普通文章一般是 addonarticle,这个根据具体的需要来更改,其他的不用修改。
接下来找到并打开 include目录下的arc.searchview.class.php文件,搜索“ //处理一些特殊字段”,在下面添加如下代码:
$row["softsize"]=Search_addfields($row["id"],"softsize");
其中的softsize是软件大小的字段名,如果有多个自定义字段则添加多行,但是一定要把softsize修改成字段名。添加之后就完成了,最后一步就是在搜索模板也调用了,在search.htm中 使用[field:softsize/]标签 就可以调用出来软件大小了。
----------------------------------------
首页调用自定义字段:
代码如下:
{dede:arclist addfields='自定义字段1,自定义字段2,.....' row='3' channelid='1'}
[field:自定义字段1/] [field:自定义字段2/]
{/dede:arclist}
注:此处channelid 是模型id号,一般都是普通文章。
列表页调用自定义字段
代码如下:
{dede:list pagesize='3'addfields='自定义字段1,自定义字段2,....'}
[field:自定义字段1/] [field:自定义字段2/]
{/dede:list}
搜索页调用自定义字段
打开 include/extend.func.php 文件,在文件末尾添加下面代码:
代码如下:
function Search_addfields($id,$result){
global $dsql;
$mnkj = $dsql->GetOne("SELECT * FROM `dede_addsoft` where aid='$id'");
$name=$mnkj[$result];
return $name;
}
其中 addosoft是要调用自定义字段的附加表,在织梦后台核心->频道模型->内容模型管理可以看到,软件模型一般是 addoshop,普通文章一般是 addonarticle,这个需要根据具体的情况来更改,其他的不用修改.
然后打开 include/arc.searchview.class.php 这个文件,搜索“ //处理一些特殊字段”,在下面添加如下代码:
码如下:
$row["自定义字段"]=Search_addfields($row["id"],"自定义字段");
如果有多个自定义字段这添加多行,添加之后就完成了,最后一步就是在搜索模板也调用了,在search.htm中 使用[field:自定义字段/] 就可以调用出来了.
内容页调用自定义字段
直接使用:
代码如下:
[field:自定义字段/]
希望本文所述对大家的dedecms建站有所帮助。