WordPress有很多我不习惯的地方,比如上传一张图片就会占用一个文章ID,导致文章ID不连续的问题,玩博客的人都是爱折腾的人,所以我已经在本地测试Z-blog的PHP版本了,之所以还没有正式迁移,是因为现在还没有找到一套自己比较满意的主题模板,自己也在尝试修改一些比较中意的模板,以备正式迁移本站数据。
今天在折腾一套主题的时候,发现这套主题的文章摘要是没有图片的,就算文章正文有图片,也是不调用的,所以就想着怎么折腾一下,让主题实现自动提取文章第一张图片,没有图片的情况下就随机调用自定义图片。
还是以默认主题(default)为例吧!修改的文件为:zb_users\theme\default\template\post-multi.php
在zblog wiki中可以查找到“随机获得文章中的四张图片中的一张“,所需代码如下:
PHP
{php}$temp=mt_rand(1,4);$pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/";$content = $article->Content;preg_match_all($pattern,$content,$matchContent);if(isset($matchContent[1][0]))$temp=$matchContent[1][0];else$temp=$zbp->host."zb_users/theme/$theme/style/images/random/$temp.jpg";//需要在当前使用的主题style下放置4张jpg的文件,名称为1,2,3,4{/php}<img src="{$temp}" />
用编辑器打开post-multi.php,在代码前添加:
PHP
{php}$temp=mt_rand(1,4);$pattern="/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png]))[\'|\"].*?[\/]?>/";$content = $article->Content;preg_match_all($pattern,$content,$matchContent);if(isset($matchContent[1][0]))$temp=$matchContent[1][0];else$temp=$zbp->host."zb_users/theme/$theme/style/images/random/$temp.jpg";//需要在当前使用的主题style下放置4张jpg的文件,名称为1,2,3,4{/php}
然后找到:
PHP
<div class="post-body">{$article.Intro}</div>
修改为:
PHP
<div class="post-body"><img src="{$temp}" />{$article.Intro}</div>
最后记得找4张JPG的图,放到主题文件夹下的style文件夹里面,并命名为1.jpg!
如果想放5张或者6张可以把$temp=mt_rand(1,4); 中的4改为对应的数字!
未经允许不得转载:搬瓦工VPS_美国VPS » Zblog主题自动提取文章第一张图片否则随机调用自定义图片的方法