分类目录归档:代码笔记

Typecho上传图片失败解决办法并修改图片大小限制

最近在使用typecho上传附件时,插入远程图片是没问题的,但本地图片会报上传失败。网上找了许多方法,最后得到了解决。解决办法我的博客是搭建在腾讯服务器上的,Typecho会对服务器进行监测,如果不在BAE、SAE、ACE下,则不允许文件上传。事实上,可以去掉这一段监测代码。打开/var/Typecho/Common.php把这一段代码public static function isAppEngine() { return !empty($_SERVER['HTTP_APPNAME']) // SAE || !!getenv(' …

Typecho二次开发文章表添加新字段

有时候我们需要在博客中显示其他功能比如每篇文章可以自定义标题颜色,就需要添加一个标题颜色属性,就必须添加自定义的字段,我这里是添加了一个比如1.首先数据表 typecho_contents 中新建一个test_url字段,类型可为字符串。2.后台模板文件write-post.php 表单中插入:<p><input type="text" name="test_url" value="<?php $post->test_url(); ?>"/></p> 3. …

Typecho 实现显示页面加载时间

function timer_start() { global $timestart; $mtime = explode( ' ', microtime() ); $timestart = $mtime[1] + $mtime[0]; return true; } timer_start(); function timer_stop( $display = 0, $precision = 3 ) { global $timestart, $timeend; $mtime = explode( ' ', microtime() ); $timeend = $mtime[1] + $mtime[ 在需要的地方直接调用一下代码<?php echo timer_stop(); ?>

Typecho 随机跳转到一篇文章功能实现(手气不错)

文章很多时,读者不知道该看哪篇文章,我们可随机给读者显示一下片文章,在网上好的都是介绍如何在一个固定地方随机展示一下文章,今天给大家分享一种可以直接进到某文章页面的随机跳转。利用MySQL的随机排列首先是随机查询一篇文章出来。<?php $db = Typecho_Db::get(); $sql = $db->select()->from('table.contents') ->where('status = ?','publish') ->where('type = ?', 'post') ->where('created …

Typecho 免插件实现文章浏览次数统计

一般情况下,TYPECHO的文章浏览次数有多款插件可以完成,但是作为经常写主题的人我是不太喜欢使用插件来完成,觉得插件用的越少越好,其实相对现在主机来说,这个观点该过时了,更多只是自己喜欢折腾,喜欢拾掇各种功能,上篇文章说过一个通过自定义字段来实现浏览次数统计的方法,参考:Typecho 免插件实现文章浏览次数统计(Cookie Enabled),今天的这个方法和它有点区别,是通过function.php写入数据库文章表里新增字段 …

Typecho 免插件实现文章浏览次数统计(Cookie Enabled)

最近在打造新主题,想给主题增加统计功能,为了不使用Views插件,撸了下面的代码,使用自定义字段保存数据,不会改动数据库结构,其实统计文章浏览次数还有另外一个方法,请参考另外一篇:Typecho 免插件实现文章浏览次数统计/* * 获取浏览次数 */ function getViewsStr($widget, $format = "{views} 次浏览") { $fields = unserialize($widget->fields); if (array_key_exists('views',$fields)) $views = …

Typecho 文章增加在线可编辑按钮

上篇文章给大家提供一个在线编辑文章按钮的教程,如果该文有问题,请参考另外一篇:Typecho 首页文章列表新增管理员可见编辑按钮<?php if($this->user->hasLogin() && $this->user->uid==$this->authorId):?><a href="<?php echo str_replace('login.php','',$this->options->loginUrl); ?>write-post.php?cid=<?php echo $this->cid; ?>"><?php _ …

Typecho 首页文章列表新增管理员可见编辑按钮

之前用的Wordpress主题大多都支持前台点击编辑按钮进入后台对文章进行修改,方便极了。转了Typecho之后换了几个主题都没发现有这个功能,果然需要造个小轮子啊。另外一篇为文章,同样是实现了这个方法,可参考:Typecho 文章增加在线可编辑按钮观察一下编辑页面,都是固定地址加上CID,例如http://blog.iplayloli.com/admin/write-post.php?cid=4222那么就简单了,在输出post-entry的时候按规则输出连接就行。翻了一下主 …

Typecho 首页实现自动摘要的方法

之前在修改一个主题的时候,主页文章列表默认输出的是文章的所有内容,这样非常不美观,在别的TE主题翻了一下,发现TE是内置有输出摘要的方法的。调用方法:<?php $this->excerpt(300, '...'); ?> 但是,这种方法截取出来的和WordPress哪个摘要的函数一样,有点不美观,而我想实现的是像WP excerpt那样自动输出第一个p标签包裹的文字,我不会正则,所以在TE论坛搜了一下,找到了糖兜写的代码,没有WP excerpt那么 …

Typecho 管理员帐号密码忘了怎么办?教你修改方法

本文以使用phpmyadmin数据库管理工具为基础所写登录你的PHPMYADMIN账户,如果连PHPMYADMIN账户的密码都忘了请直接点屏幕右上角的X离开吧打开typecho安装数据库,找typecho_users点进去在password前面打勾,选择浏览,就能看到uid1的详细信息了选择uid1然后点最前面的笔形图标“更改”,把第三行的password改为下面的字符串:16位:49ba59abbe56e057 32位:e10adc3949ba59abbe56e057f20f883e 其他项目不要动,选择执行,这时候 …

如何通过修改 TYPECHO 主题文件来实现网站随机文章列表功能?

TYPECHO 随机文章调用的实现可以有三种方法,第一种方法就是最简单的,使用插件,可以参考:Typecho 随机文章列表插件RandomArticleList ;第二种方法就是上篇文章所说的,如何为 Typecho 网站实现随机文章列表? 通过更改TYPECHO系统源码实现随机文章的调用;第三种方法就是本篇文章要讲述的方法,通过修改 TYPECHO 的主题文件的 function.php 文件来实现调用网站的随机文章列表。操作方法:1、把下面的代码添加至主题的 …

如何为 Typecho 网站实现随机文章列表?

该文主要用到的方法是修改 TYPECHO 源码,达到实现随机文章列表的功能,并且通过可以实现某个具体分类下的随机文章调用,但不建议使用该方法,因为一旦系统升级,可能就会收到影响,建议大家参考另外一篇文章,实现网站随机文章调用 : 如何通过修改 TYPECHO 主题文件来实现网站随机文章列表功能? ,另外还有一个方法就是直接使用插件实现,可以参考:Typecho 随机文章列表插件RandomArticleList 。在var/Widget/Content …

如何修改 Typecho 的后台管理地址

要修改 Typecho 的后台管理地址,由默认的/admin,改为你不想让别人知道的地址,需要修改两个地方:修改 admin 文件夹的名字,假定修改为 myadmin。打开根目录下的 config.inc.php文件,找到/** 后台路径(相对路径) */ define('TYPECHO_ADMIN_DIR', '/admin/'); 将 /admin/ 修改为之前重命名的名字/myadmin/。然后你就可以通过 /myadmin 来访问你的后台了。另外,将默认模板 default 的sidebar.php涉及到后台管理地址的两 …

Typecho 全站启用HTTPS配置教程

全站启用HTTPS让您的网站更安全,随着用户和搜索引擎的不断重视,很多小伙伴们已经加入HTTPS的阵营,分享下Typecho设置HTTPS的过程。申请SSL证书如果您还没有域名SSL证书,可以参考教程:沃通免费SSL证书申请和Let’s Encrypt免费SSL证书申请免费的SSL证书。Typecho设置登录Typecho后台 -> 设置 -> 基本设置 -> 站点地址改成https的域名是必须的。编辑Typecho站点根目录下的文件config.inc.php加入下面一行配置, …

Typecho不兼容PHP 7的解决办法

Typecho提供mysql或pdo两种方式连接数据库,若您在安装的时候选择mysql方式连接,很有可能升级PHP 7后Typecho就打不开了,原因是PHP 7已经放弃mysql方法,需要使用mysqli或pdo方法。解决办法修改配置文件config.inc.php,将:$db = new Typecho_Db('Mysql', 'typecho_'); 注释或者替换为:$db = new Typecho_Db('Pdo_Mysql', 'typecho_');

Typecho默认主题导航栏菜单显示所有分类目录

Typecho默认主题导航栏菜单仅显示了首页和关于页面,如果我们添加了更多分类目录是不会显示出来的,需要修改主题目录下的header.php文件。将55-59行使用如下代码替换:<a<?php if($this->is('index')): ?> class="current"<?php endif; ?> href="<?php $this->options->siteUrl(); ?>"><?php _e('首页'); ?></a> <?php $this->widget('Widget_Me …

Typecho文章内链接新窗口打开并添加nofollow

默认情况Typecho文章中如果有添加链接,那么是从当前窗口跳转的,并且外链没有添加nofollow标签,不利于SEO,Typecho文章内链接新窗口并添加nofollow标签如下。找到/var/CommonMark/HtmlRenderer.php这个文件,在105行,也就是$attrs['href'] = $this->escape($inline->getAttribute('destination'), true);代码之后添加如下两行代码:$attrs['target'] = $this->escape(_blank, true); $attrs['rel'] = $this-& …

Typecho首页摘要字数限制

默认情况下Typecho首页会全文输出所有文章内容,如果文章篇幅较长,不利于排版和阅读,通常需要对首页摘要字数进行限制,找到主题目录下面的index.php文件<!--more-->,找到如下代码:<?php $this->content('- 阅读剩余部分 -'); ?> 将代码修改为如下,数字200就是摘要字数,可根据实际情况修改。<?php $this->excerpt(200, '...');//200就是摘要的字数 ?> 另一个方法在文章所需要的地方加入more …

Typecho 设置父分类和子分类不同样式的方法

<?php $this->widget('Widget_Metas_Category_List')->to($categorys); ?> <?php while($categorys->next()): ?> <?php if ($categorys->levels === 0): ?> <?php $children = $categorys->getAllChildren($categorys->mid); ?> <?php if (empty($children)) { ?> <li <?php if($this->is('category', $categorys->slug)): ?> class="active"& …

Typecho 获取文章第一张图片做缩略图

编写 functions.php 中的代码(给出的图片地址是绝对地址,如果想要相对地址可以使用php操作字符串进行截断。)function img_postthumb($cid) { $db = Typecho_Db::get(); $rs = $db->fetchRow($db->select('table.contents.text') ->from('table.contents') ->where('table.contents.cid=?', $cid) ->order('table.contents.cid', Typecho_Db::SORT_ASC) ->limit(1)); preg_match_all("/\<img …

如何实现用一个 Typecho 程序建多个网站

首先绑定两个域名(以下称 A域名 和 B域名)到空间目录上。接着把typecho上传到空间里,打开 A域名 时,typecho就会自动检测并开始安装,安装是请修改数据库表前缀为 A_ ,安装过程非常顺利。安装完后,把程序自动生成的文件config.inc.php下载下来备份,并删除服务器上的config.inc.php。然后,用 B域名 打开网站,此时,typecho会再度自动检测并开始安装,此时请修改数据库表前缀为 B_ ,安装过程也一样非常的顺利。再 …

Typecho 主题评论模块个性化的实现

早就想研究下这部份,一直拖到现在。 主题设计时,评论模块希望设计得独特,富有个性,就需要修改评论结构,而 typecho 默认模板中提供给我们的只有一行简单代码:<?php $comments->listComments(); ?> 把结构都写死了。当然,其实官方的博客中有一篇文章已经声明可以自定义评论结构,只是不太详细,有点摸不着头脑~于是今天抽空折腾了下,总的来说是 在 comments.php 开头部份加入如下方法即可实现自定义。< …

Typecho 自定义列表分页的样式

增加更加多样的分页输出样式选项,包括wrapTag 外层包裹标签名,默认olwrapClass 外层包裹类名itemTag 内层标签名, 默认litextTag 直接输出文字的标签名currentClass 当前聚焦类名prevClass 上一页类名nextClass 下一页类名方法一:<?php $this->pageNav('«', '»', 3, '...', array('wrapTag' => 'ol', 'wrapClass' => 'page-navigator', 'itemTag' => 'li', 'textTag' => 'span', 'currentClass' =&g …