首先,这里定义了几个新文章属性:w-北镇,x-俪人,y-营口,z-海城,自定义文章属性的方法[参考这里],想要实现的效果如下:
列表页
文章页
列表页自定义属性的实现方法:
打开include/arc.listview.class.php文件,找到“//处理一些特殊字段”的部分,在这之中找到如下代码:
if(preg_match('/c/', $row['flag']))
{
$row['title'] = "<b>".$row['title']."</b>";
}//这段代码的意思是为“推荐”属性加粗
在这之后添加以下代码:
//控制自定义属性显示
if(preg_match('/w/', $row['flag']))
{
$row['bzsk'] = "<span class='zdysx'>[北镇]</span>";
}
if(preg_match('/x/', $row['flag']))
{
$row['byqlr'] = "<span class='zdysx'>[俪人]</span>";
}
if(preg_match('/y/', $row['flag']))
{
$row['ykba'] = "<span class='zdysx'>[营口]</span>";
}
if(preg_match('/z/', $row['flag']))
{
$row['hcyg'] = "<span class='zdysx'>[海城]</span>";
}
之后在{dede:list}标签中就可以使用[field:bzsk/][field:byqlr/][field:ykba/][field:hcyg/]
调用了。
文章页自定义属性的实现方法:
文章页实现自定义标签的显示需要使用{dede:sql}标签,写法:
{dede:sql sql='SELECT * FROM article_archives where id =~id~'}[field:flag function='str_replace(array("w","x","y","z",","),array("[北镇]","[俪人]","[营口]","[海城]",""),@me)'/]{/dede:sql}
SELECT:需要获取的数据,星号*表示获取所有;
FROM:数据来自哪个表,_archives表里存储着所有文章的标题、ID及自定义属性,所以这里选择这个表;
WHERE:获取的条件,id =~id~为读取当前文档的ID;
str_replace() 函数替换字符串中的一些字符(区分大小写),array是创建一个数组。
[、]:等同于“[”和“]”,为防止织梦后台误认为是标签,所以用字符编码表示;