其实严格的说,这可能是博主自己主题的问题,但人类的悲欢偶尔相通么,没准也可能在其他的主题中遇到类似的。博主之前边写博客边修改拼凑了一个比较简陋的主题,使用一段时间后,觉得主页过于单调了,于是在23年的国庆前后对主题整体做了一个比较大的修改。
因为主题的测试是在分站“theme.abddb.com”上做的,所以真正实装的时候出现了不少问题,比较严重的一个就是文章的缩略图无法显示了。博主的主题的缩略图是将所有图片名称放在了一个设置字段中,然后
在文章的编辑页面生成一个列表供自己选择,程序编写如下,现在复盘看这段程序,这种方式其实是把缩略图的地址给直接焊死了。兼容性更好的方式是仅用自定义字段存储下图片的名称,然后放到实际页面中去完成链接的组装工作。
/*========
文章自定义字段
========*/
function themeFields($layout) {
$thumbs=[];
$thumb_text = Helper::options()->augPostThumbs;
if ($thumb_text) {
$thumbs=array('' => '不使用缩略图');
$thumb_arr = explode("\r\n", $thumb_text);
foreach ($thumb_arr as $item) {
$name = explode("_" , $item)[0];
$value = Helper::options()->themeUrl.'/thumbs/'.$item.'||'.$name;
$thumbs[$value] = $name;
}
$augPostThumb = new Typecho_Widget_Helper_Form_Element_Select(
'augPostThumb',
$thumbs,
'不指定缩略图',
'设置文章缩略图',
'介绍:需要先在主题设置中添加缩略图来源'
);
$layout->addItem($augPostThumb->multiMode());
}
}
凑巧博主新修改的主题的文件夹名称为“august”,而原来站点的主题名称为“August”,因为路径的改变,所以程序就无法正确定位到主题中的缩略图文件夹,从而也就无法正确的去显示图片了。如果主题中有这种路径被固化的图片,当更换主题或者更换域名的时候,就有可能出现博主所遇到的类似问题。