欢迎使用 Typecho
如果您看到这篇文章,表示您的 blog 已经安装成功.
今天正式搬家到typecho,zblog停更,将陆续迁移到此处
以后会在这里记录一些修改Typecho的教程
隐藏博主评论
在评论所在的位置,如本主题的footer.php
中Widget_Comments_Recent
所在位置
然后将
$this->widget('Widget_Comments_Recent')->to($comments);
改为
widget('Widget_Comments_Recent','ignoreAuthor=true')->to($comments);
获取访客真实IP(相对)
将以下代码添加到站点根目录的config.inc.php
内
//绕过 CDN 代理IP获取客户真实IP地址
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}
邮件插件通知模板
部分仿QQ样式
<div style="margin: 16px 40px; background-color: #eef2fa; border: 1px solid #d8e3e8; padding: 0 15px; -moz-border-radius:5px; -webkit-border-radius:5px; -khtml-border-radius:5px; border-radius:5px;">
<p style="font-size:18px;font-weight:400;">在援军博客的 <a target="_blank" href="{permalink}">{title}</a> 有新的回复</p>
<div style="color: #777777;
border: 5px solid #EEF2FF;
margin-top: -20px;
font-size: 12px;">本邮件为{siteTitle}Mail自动发送,请勿直接回复<br>如有疑问,请<a href="mailto:{contactme}" target="_blank" style="color:#0e0e70">联系我</a> 。</div>
<p style="color:#008040">{author_p}</p>
<p>{text_p}</p>
<p style="color:#0100fe">{author} {time}</p>
<p>{text}</p>
</div>
修改gravatar头像源
在var/Typecho/Common.php
文件的第937
行,将两个地址替换为其他镜像站
if (defined('__TYPECHO_GRAVATAR_PREFIX__')) {
$url = __TYPECHO_GRAVATAR_PREFIX__;
} else {
$url = $isSecure ? 'https://cdn.v2ex.com/gravatar/' : 'https://gravatar.loli.net/avatar/';
}
添加评论区预览
效果可能不是很好,我只是为了评论区不缺一块硬加上的而已……
<h3 id="response"><?php _e('添加新评论');
?><small>(点击头像可修改/隐藏信息框)</small></h3>
<form method="post" action="<?php $this->commentUrl() ?>" id="comment-form" role="form">
<?php if ($this->remember('author',true)): ?><?php $guestinfo = "display:none"?><?php else :?><?php $guestinfo = "display:block";
?><?php endif;
?>
<?php if ($this->user->hasLogin()): ?>
<p>
<?php _e('登录身份: ');
?><a href="<?php $this->options->profileUrl();
?>"><?php $this->user->screenName();
?></a>. <a href="<?php $this->options->logoutUrl();
?>" title="Logout"><?php _e('退出');
?> »</a>
</p>
<?php else : ?>
<div id="guestinfo" class="guest-info" style="<?php echo $guestinfo ?>">
<script src="https://cdnjs.loli.net/ajax/libs/marked/0.6.2/marked.min.js"></script>
<script>var rendererMD = new marked.Renderer();</script>
<input type="text" name="author" id="author" class="text" style="width:275px;margin:10px 0" placeholder="昵称*" value="<?php $this->remember('author');
?>" required />
<input type="email" name="mail" id="mail" class="text" style="width:275px;margin:10px 10px" placeholder="邮箱*" value="<?php $this->remember('mail');
?>"<?php if ($this->options->commentsRequireMail): ?> required<?php endif;
?> />
<br>
<input type="url" name="url" id="url" class="text" style="width:275px;margin:10px 0" placeholder="<?php _e('http://');
?>" value="<?php $this->remember('url');
?>"<?php if ($this->options->commentsRequireURL): ?> required<?php endif;
?> />
<input type="button" name="preview" id="preview" class="preview" onclick="acpreview()" value="预览" />
</div>
<?php endif;
?>
<div class="user-face">
<img id="userface" src="<?php if ($this->user->hasLogin()): ?><?php _e('https://gravatar.loli.net/avatar/'.md5($this->author->mail))?><?php elseif ($this->remember('mail',true)): _e('https://gravatar.loli.net/avatar/'.md5($this->remember('mail',true)));
else :_e('https://i.loli.net/2018/10/28/5bd55579d2d72.png')?><?php endif;
?>">
</div>
<div id="preview-box" class="preview-box" ></div>
<textarea rows="8" cols="50" name="text" id="textarea" class="textarea" required><?php $this->remember('text');
?></textarea>
<button type="submit" class="comment-submit"><?php _e('提交评论');
?></button>
<div id="OwO" class="OwO"></div>
</form>
下面是搭配的js
//评论区预览
function acpreview(){
if($('#preview-box').is(':visible')){
$('#preview').css({'background-color':'#f4f5f7','color':'#99a2aa'});
}else{
$('#preview').css({'background-color':'#00a1d6','color':'#fff'});
}
$('#preview-box').slideToggle();
}
$('#textarea').on('change', function () { var md = $('#textarea').val();var html = marked(md);$('#preview-box').html(html); });
适配的是Bilispace
主题,比较主要的代码是:
<script src="https://cdnjs.loli.net/ajax/libs/marked/0.6.2/marked.min.js"></script>
<script>var rendererMD = new marked.Renderer();</script>
和
//评论区预览
function acpreview(){
if($('#preview-box').is(':visible')){
$('#preview').css({'background-color':'#f4f5f7','color':'#99a2aa'});
}else{
$('#preview').css({'background-color':'#00a1d6','color':'#fff'});
}
$('#preview-box').slideToggle();
}
$('#textarea').on('change', function () { var md = $('#textarea').val();var html = marked(md);$('#preview-box').html(html); });
Typecho 批量替换文章内容中的旧地址的方法
替换文章内容中的文字
UPDATE `typecho_contents` SET `text` = REPLACE(`text`,'旧域名地址','新域名地址');
替换自定义字段的值
UPDATE `typecho_fields` SET `str_value` = REPLACE(`str_value`,'原来的值','新的值');
邮件提醒插件
使用的QQ邮箱
地址:smtp.qq.com
端口:465
用户:QQ邮箱账号
SMTP密码:在QQ邮箱设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务-生成授权码
Typecho 有用的常量
打开 Debug 模式
define('__TYPECHO_DEBUG__',true);
强制SSL,上cdn、ssl或者Cloudflare无法登录后台时可以尝试此方法
define('__TYPECHO_SECURE__', true);
Avatar 前缀
define('__TYPECHO_GRAVATAR_PREFIX__', 'https://myavatar.com/avatar');
typecho忘记密码
登入数据库
找到typecho_users
=>password
填入以下内容,密码就会恢复为123456
e10adc3949ba59abbe56e057f20f883e
大佬,想问您一个问题,怎么才能让评论区的“回复的回复的回复”“回复的回复”与“回复”对齐么。毕竟typecho默认的comment.php只要回复,就错开一行。回复多了,搞的就像台阶一样。能否看到您的教程么?
https://github.com/menhood/Typecho-Theme-Bilispace/blob/718b4098d1feaf667467fdfea81445de0e08bf0d/comments.php#L3
参考这里,之前忘了从哪个大佬哪里搞来的,按层数改class
ヾ(´・ ・`。)ノ"???
欢迎加入 Typecho 大家族