php,{dede:field name='titleimg' function='GetAtt(@me)'/},
`,,
name 属性指定要获取的字段名,这里为
titleimg;
function 属性指定要使用的函数,这里为
GetAtt,表示获取属性值。
@me 表示当前标签对象。,,如果要获取缩略图的宽度和高度,可以使用以下代码:,,
`php,{dede:field name='titleimg' function='GetAtt(@me, 'width')'/},{dede:field name='titleimg' function='GetAtt(@me, 'height')'/},
“,,这样就可以分别获取到缩略图的宽度和高度了。在织梦DedeCms中,获取缩略图的高度和宽度是一个常见的需求,尤其是在需要实现瀑布流布局或其他依赖于图片尺寸的布局时,以下是两种常用的方法来获取DedeCms中缩略图的高度和宽度:
方法一:使用getimagesize函数
这种方法相对简单,但可能会消耗较多的系统资源,具体步骤如下:
1、在include/helpers/extend.helper.php
文件的末尾添加以下代码:
if (!function_exists('getheight')) { function getheight($litpic) { $litpicc = $GLOBALS['cfg_basehost'] . $litpic; $arr = getimagesize($litpicc); $resault = $arr[1]; // 此为高度 //$resault = $arr[0]; //此为宽度 return $resault; } }
2、在模板中直接使用[field:litpic function="getheight(@me)"/]
来输出图片高度。
<img src="[field:litpic/]" height="[field:litpic function="getheight(@me)"/]">
需要注意的是,如果$GLOBALS['cfg_basehost']
中包含www
,则可能无法正常获取图片尺寸,这种方法较为耗费系统资源,特别是在处理大量图片时。
方法二:在插入数据库前获取并存储缩略图尺寸
这种方法更为推荐,因为它通过数据库调用来大大节省系统资源,具体步骤如下:
1、在/dede/article_add.php
文件中,插入数据库前添加以下代码:
//获取缩略图宽度及高度 $litpicc = $GLOBALS['cfg_basehost'] . $litpic; $arr = getimagesize($litpicc); $arr[0]就是宽度,$arr[1]就是高度 //将这两个值插入数据库中即可(之前请先添加相应字段)
2、确保在数据库中已经添加了相应的字段来存储这些尺寸信息。
3、之后,你可以直接从数据库中读取这些尺寸信息,而无需再次调用getimagesize
函数。
FAQs
问题1:为什么在使用getimagesize函数时,带有www的URL可能无法正常获取图片尺寸?
答:这可能是因为在某些服务器配置或URL重写规则下,带有www的URL被重定向到了其他地址,导致实际访问的图片路径与预期不符,具体原因可能因服务器配置而异,建议检查服务器的URL重写规则或配置。
问题2:如何在DedeCms中添加自定义字段来存储缩略图的尺寸信息?
答:在DedeCms中添加自定义字段的步骤如下:
1、登录DedeCms后台,进入“系统” > “SQL命令行工具”。
2、选择要添加字段的数据表,通常是文章表(如dede_archives
)。
3、执行SQL语句来添加字段,ALTER TABLE dede_archives ADD COLUMN litpic_width INT(11) NOT NULL DEFAULT '0'; ALTER TABLE dede_archives ADD COLUMN litpic_height INT(11) NOT NULL DEFAULT '0';
,这将在文章表中添加两个新字段litpic_width
和litpic_height
来分别存储缩略图的宽度和高度。
4、保存更改后,你就可以在插入文章时将缩略图的尺寸信息存储到这些新字段中了。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1232023.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复