最近做个旅游网站,想要实现线路功能,线路攻略包含很多景点,如果在文章页面重复编辑工作量太大,索性就直接在文章页面调用指定几个id文章的字段,织梦调用指定文章的标签非常简单, {dede:arclist idlist=’2,3,4′ orderby=’idlist’ }[field:title/]{/dede:arclist} ,但是由于其中的文章id为动态参数, {dede:arclist idlist=’自定义字段’ orderby=’idlist’ } 又无法实现,只能用dede:sql来实现了。
{dede:sql sql=”SELECT * FROM #@__archives WHERE arcrank>-1 AND id in(~自定义字段名~) ORDER BY FIELD(id,~自定义字段名~)”}[field:title/]
[field:description/]
{/dede:sql}查了一圈资料这个可以实现,这个标签自定义字段有两处,可供两个自定义字段。但是当自定义字段出现多个数值是只能调用第一个数字id的文章,如果想要全部调用还需要修改php文件。 打开 /include/taglib/sql.lib.php 找到
preg_match_all(“/~([A-Za-z0-9]+)~/s”, $sql, $conditions);
修改为:
preg_match_all(“/~([A-Za-z0-9_]+)~/s”, $sql, $condition