首页
微语
统计
友链
留言
memos
圈子
图床
推荐
相册
网站监控
VPS监控
Search
1
实现typecho微信时光机功能的图文教程
47,118 阅读
2
为Typecho添加webp解析
43,427 阅读
3
emlog数据成功迁移到typecho
27,572 阅读
4
Memos备忘录,记录瞬间想法
27,511 阅读
5
Jasmine - 简约、美观的博客主题
26,101 阅读
手机达人
免费资源
电脑网络
娱乐休闲
网站建设
威言威语
Typecho
Emlog
WordPress
服务器
主题
插件
排行榜    
登录
/
注册
Search
标签搜索
wordpress
发布
插件
免费
教程
typecho
EMlog
PHP
代码
CSS
华为
图片
代码修改
安装
评论
手机
诺基亚
微信
文章
智能
Chen'mo
累计撰写
1,267
篇文章
累计收到
377
条评论
首页
栏目
手机达人
免费资源
电脑网络
娱乐休闲
网站建设
威言威语
Typecho
Emlog
WordPress
服务器
主题
插件
页面
微语
统计
友链
留言
memos
推荐
相册
网站监控
VPS监控
搜索到
4
篇与
的结果
emlog pro版本获取文章缩略图
emlog列表页面缩略图先调用正文HTML代码第一张图片,没有的话就调用Markdown语法数据库的图片,如果都没有则调用随机图片代码,以前正则读数据库的代码不能用了这里我做了个修改,以前的版本或者PRO都能使用在模板的module.php文件中加入以下代码 <?php //全局匹配正文中的图片并存入imgsrc中 function img_ns($content){ preg_match_all("|<img[^>]+src=\"([^>\"]+)\"?[^>]*>|is", $content, $img); $imgsrc = !empty($img[1]) ? $img[1][0] : '';if($imgsrc):return $imgsrc;endif;} //Custom: 获取附件第一张图片 function img_fj($content){preg_match_all("/\]\((.*?)\)/", $content, $img);$imgsrc = !empty($img[1]) ? $img[1][0] : '';if($imgsrc):return $imgsrc;endif;} ?>在log_list.php的foreach循环中加入如下代码 <?php if(img_ns($value['content'])){$imgurl = img_ns($value['content']); }elseif(img_fj($value['content'])){$imgurl = img_fj($value['content']); }else{$imgurl = TEMPLATE_URL.'images/'.rand(1,5).'.jpg';} ?>在img的src属性里调用 <?php echo $imgurl;?>总结Markdown语法的数据库图片正则代码为/\]\((.*?)\)/
2021年06月08日
12,729 阅读
0 评论
0 点赞
2021-03-03
typecho 超完美上一篇下一篇文章加文章缩略图
最近被这一功能吸引了,之前的文章是泽泽社长写的,这是木灵鱼儿写的,还有小灯泡写的。先收藏,以后在学原理。[post]1127[/post]fundtions.php里添加获取文章上一篇,下一篇cid/** * 显示上一篇 * * 如果没有下一篇,返回null */ function thePrevCid($widget, $default = NULL) { $db = Typecho_Db::get(); $sql = $db->select()->from('table.contents') ->where('table.contents.created < ?', $widget->created) ->where('table.contents.status = ?', 'publish') ->where('table.contents.type = ?', $widget->type) ->where('table.contents.password IS NULL') ->order('table.contents.created', Typecho_Db::SORT_DESC) ->limit(1); $content = $db->fetchRow($sql); if ($content) { return $content["cid"]; } else { return $default; } }; /** * 获取下一篇文章mid * * 如果没有下一篇,返回null */ function theNextCid($widget, $default = NULL) { $db = Typecho_Db::get(); $sql = $db->select()->from('table.contents') ->where('table.contents.created > ?', $widget->created) ->where('table.contents.status = ?', 'publish') ->where('table.contents.type = ?', $widget->type) ->where('table.contents.password IS NULL') ->order('table.contents.created', Typecho_Db::SORT_ASC) ->limit(1); $content = $db->fetchRow($sql); if ($content) { return $content["cid"]; } else { return $default; } }; //获取文章缩略图,没有则随机 function get_ArticleThumbnail($widget){ // 当文章无图片时的随机缩略图 $rand = mt_rand(1, 45); // 随机 1-9 张缩略图 // 缩略图加速 $rand_url; if(!empty(Helper::options()->articleImgSpeed)){ $rand_url = Helper::options()->articleImgSpeed; }else { $rand_url = $widget->widget('Widget_Options')->themeUrl . '/images/articles/'; } $random = $rand_url . $rand . '.jpg'; // 随机缩略图路径 $attach = $widget->attachments(1)->attachment; $pattern = '/\<img.*?src\=\"(.*?)\"[^>]*>/i'; //如果有自定义缩略图 if($widget->fields->thumb) { return $widget->fields->thumb; }else if (preg_match_all($pattern, $widget->content, $thumbUrl) && strlen($thumbUrl[1][0]) > 7) { return $thumbUrl[1][0]; } else if ($attach->isImage) { return $attach->url; } else { return $random; } };插入上下文章位置,一般位于post.php里。<?php //获取到id ?> <?php $prevId = thePrevCid($this);$nextId=theNextCid($this);?> <!-- 上一篇 --> <?php if(!empty($prevId)) : ?> <?php $this->widget('Widget_Archive@recommend'.$prevId, 'pageSize=1&type=post', 'cid='.$prevId)->to($prev);?> <a href="<?php $prev->permalink();?>"> <img src="<?php echo get_ArticleThumbnail($prev);?>" alt="<?php $prev->title();?>"> <h2 class="card-title"><?php $prev->title();?></h2> </a> <?php endif; ?> <!-- 下一篇 --> <?php if(!empty($nextId)) : ?> <?php $this->widget('Widget_Archive@recommend'.$nextId, 'pageSize=1&type=post', 'cid='.$nextId)->to($next);?> <a href="<?php $next->permalink();?>"> <img src="<?php echo get_ArticleThumbnail($next);?>" alt="<?php $next->title();?>"> <h2 class="card-title"><?php $next->title();?></h2> </a> <?php endif; ?>PHP其中$prev和$next的使用和$this是一样的,他能做到的,$prev和$next也可以做到,所以拓展性大大延伸。这里我只是提供了php,html代码自己去构建结构,前端代码不多说。
2021年03月03日
2,967 阅读
0 评论
1 点赞
2021-02-27
Typecho上下篇文章代码输出文章缩略图
本篇文章虽说是教大家如何调用上下篇文章缩略图的,但是实则是探讨一种船新的函数写法。在正式教程开始之前,首先我们需要先写个缩列图函数,如下:function showThumbnail($widget) { $mr = '默认图片地址'; $attach = $widget->attachments(1)->attachment; $pattern = '/\<img.*?src\=\"(.*?)\"[^>]*>/i'; if (preg_match_all($pattern, $widget->content, $thumbUrl)) { echo $thumbUrl[1][0]; } elseif ($attach->isImage) { echo $attach->url; } else { echo $mr; } }函数调用方法也很简单,一般如<?php showThumbnail($this); ?>,参数是$this,问题的关键点就是如何找到上下篇文章的$this,几年前的给别人弄的时候选择了一种比较繁琐的方式,就是先查到上下篇文章的cid,然后根据《Typecho根据文章cid获取文章信息》提到的方式,调用出对应的$this,这种方式缺点就是代码多了一些数据查询也多了两次。2021年开年之际,我又投入时间研究了这个问题,经过大量失败后所幸还是研究出成果了。原理就是自己写两个函数用来输出上下篇文章,关键点也是在$this参数上,折腾了好久,具体代码如下。首先是函数部分//下一篇 function theNext($widget) { $t = Typecho_Widget::widget('Widget_Archive@1');//@的作用我之前也有讲过,就是用来区分的,这里的$t就是定义的$this $db = Typecho_Db::get(); $sql = $db->select()->from('table.contents') ->where('table.contents.created > ?', $widget->created) ->where('table.contents.status = ?', 'publish') ->where('table.contents.created <= ?', time()) ->where('table.contents.type = ?', $widget->type) ->where('table.contents.password IS NULL') ->order('table.contents.created', Typecho_Db::SORT_ASC) ->limit(1);//sql查询下一篇文章 $db->fetchAll($sql, array($t, 'push'));//这个代码就是如何将查询结果封到$this里的 return $t;//返回变量 } //上一篇 function thePrev($widget) { $t = Typecho_Widget::widget('Widget_Archive@2');//@的作用我之前也有讲过,就是用来区分的,@后面参数随便只要和上边的不一样就行 $db = Typecho_Db::get(); $sql = $db->select()->from('table.contents') ->where('table.contents.created < ?', $widget->created) ->where('table.contents.status = ?', 'publish') ->where('table.contents.created <= ?', time()) ->where('table.contents.type = ?', $widget->type) ->where('table.contents.password IS NULL') ->order('table.contents.created', Typecho_Db::SORT_DESC) ->limit(1);//sql查询上一篇文章 $db->fetchAll($sql, array($t, 'push')); return $t;//返回变量 }调用部分一般在post.php或者page.php中使用隐藏内容,请前往内页查看详情
2021年02月27日
7,970 阅读
33 评论
1 点赞
2013-03-16
WordPress博客不自动生成缩略图的方法
在用Wordpress自带编辑器和Windows Live Writer写文章的时候都会自动生成几个不同尺寸的缩略图。自动生成的缩略图主要是为了方便编辑的时候调用的,但文章发布以后没有用到的缩略图不会自动删除,所以时间一长就会积攒大量没用的缩略图,下面收藏了一个解决自动生成缩略图的方法: 进入Wordpress后面,选择“设置”中的“媒体”选项,将“图像大小”中的“缩略图大小”、“中等”、“大尺寸”中的数字全部改成“0”,这样以后在写文章时插入的图片就不会自动生成缩略图了。 但与此同时,以后在写文章时,“插入图片”选项的“缩略图”、“中”、“大”选择将变成无法使用状态。 反正至少可以节约空间了。
2013年03月16日
4,387 阅读
0 评论
0 点赞