saber酱的抱枕

Fly me to the moon

10/14
18:37
软件

修改WordPress的用户角色


本站长期以来把新注册用户的角色设置为“贡献者”,这样他们可以提交投稿。结果天天都会收到一些垃圾投稿。
翻看了一些投稿之后,我大开眼界,它们的语言五花八门,包括英语、俄语、法语、德语、西班牙语、波兰语、保加利亚语、印尼语……
内容包括:成人网站广告、线上赌球广告、互联网赌场广告、商业软件广告、购物网站广告、清洁用品广告、空调广告、印刷业务广告、松露广告、手提包广告、貂皮大衣广告、运动鞋广告、旅游景点广告、社交媒体广告、贷款广告、克服暴饮暴食的健康生活指南等等。
我想把贡献者用户都改为订阅者,这样他们就不能投稿了。但是现在已经有三万多个贡献者用户,在网站后台不能一次性修改他们的角色,所以只能去改数据库了。

Read More →

修改WordPress的用户角色

06/13
13:28
软件

Debian x9 配置 LAMP 安装 WordPress

前些时候我在 b 站学了学 Linux 的基础操作,之后我就想动手把我博客换到 linux 服务器上。我的主机商是 vultr,现在的服务器刚建立的时候就是 Linux 系统(因为选 Windows 是要多收钱的),后来用了一些手段改装成了 Windows。现在终于成功了。整个过程我做了两遍,其实要折腾起来并不算复杂,但对于第一次接触的人来说,难免处处懵逼,凭空增加难度。过程中也确实踩了很多坑,花了挺多的时间。熟悉之后就好多了。本文中的操作糅合了很多网络上的教程,感谢前辈们。
Read More →

Debian x9 配置 LAMP 安装 WordPress

04/17
01:30
软件

解决 WordPress 设置伪静态后分页问题

WordPress 后台里可以设置固定链接,达到伪静态的效果。但是文章里的分页就会出错了,比如第二页就会变成这样:

https://saber.love/postname.html/2

html 后面为什么要加个斜杠,它又不是目录,所以分页就会打不开。

在网上找到了解决办法,就是在主题的 functions.php 里加入以下代码:
Read More →

解决 WordPress 设置伪静态后分页问题

08/29
09:58
软件

WordPress 图片懒加载插件 Simple Lazyload

WordPress 图片懒加载插件 Simple Lazyload

今天我鬼迷心窍又想给网站加上懒加载(我完全想不起来为什么会产生这个念头了),得,这一下又搭了好几个小时进去。

我先搜了相关资料,有很多相关的插件需要给图片加特定的 class,加了之后会对这些图片实行懒加载。

有些插件需要我们手动加 class,我不想这样,一个原因是麻烦,另一个原因是要处理以前发布的文章,情况复杂容易出错。

于是我找了个不需要我们手动加 class 的插件,就是今天的这个 Simple Lazyload(查看插件页面)。它在服务器输出网页源代码的时候进行了处理,自动给图片加 class。
Read More →

WordPress 图片懒加载插件 Simple Lazyload

10/24
10:17
学习

解决WordPress中文tag分页时的乱码问题

其实,本站自从六月份换到了windows 服务器上,中文tag的分页就一直是乱码。

比如点击底部的“福利”tag,打开第一页是正常的,但是底下的页码已经是乱码了,导致点击页码的时候都是404页面。

404 iis IIS Chinese Tag Permalink windows wordpress 中文tag 乱码 插件

页码里的“福利”已经变成了乱码。(但是在搜索框搜索中文tag可以正常出结果,奇怪。只有页码里的中文乱码了)

这个问题百度一下有一堆结果,无非是说WordPress是utf-8编码,iis是gbk编码,所以要转码。

道理我都懂,但是我照着网上的教程尝试了各种办法,改web.config,改php.ini,改class-wp.php,改rewrite.php,折腾的欲仙欲死。教程上说这么这么改就可以了,但我这里始终就是没变化,我也很无奈。

最后我用了权宜之计,使用JavaScript在前端解决了,办法是把乱码的地方再替换成正确的中文。但是这样有弊端,虽然访客感觉不到异常,但是对于搜索引擎爬虫来说是无效的,它们抓取到的链接仍然是后台输出的错误链接。

就这样过了几个月,今天我又从function.php开始折腾,最后又失败了。不甘心的我又去网上搜索,找到了一个以前没见到过的办法:

安装IIS Chinese Tag Permalink 插件,这是一个神奇的插件,五年没有更新,但是仍然可以正常工作,并且解决了这个困扰我很久的问题。感谢作者~

ps:我发现这个插件有时候会导致tag后面多出一个斜杠"/",这样tag后面是双斜杠。不知道这是副作用还是功能设计。还好这个多出的斜杠不会影响页面的打开,可以无视。

解决WordPress中文tag分页时的乱码问题

09/23
05:47
学习

WordPress显示文章浏览次数/查看次数

首先安装WP-PostViews插件:

 wordpress WP-PostViews 插件 查看次数 浏览次数

之后在后台的“设置”→“PostViews”进行设置。

 wordpress WP-PostViews 插件 查看次数 浏览次数

Count Views From 用来设置统计人群:所有人、仅访客、仅注册会员。
Exclude Bot Views 设置是否包含bot的访问数(例如搜索引擎的爬虫等)。
Views Template 可以设置输出格式。

简单使用的话修改这些就够了。保存设置后,在模板里想要输出浏览次数的地方添加如下代码:

<?php if(function_exists('the_views')) { the_views(); } ?>

这样就可以输出查看次数了。输出的文字就是上面“Views Template”设置项里的文字。

最后还有个小小的问题:
由于WordPress本身没有统计浏览数据的功能,所以这个插件也只能从安装时开始统计。也就是一开始会有很多文章都显示0次查看,数据上不太好看。早知道就早些装这个插件了。

WordPress显示文章浏览次数/查看次数

07/14
03:53
学习

给WordPress文章里的图片添加放大效果

css3 javascript js scale wordpress 图片放大

昨天我在初音社(www.mikuclub.cn)看到了这个效果,有些地方的图片在鼠标经过时会放大,感觉很棒,整个网页似乎生动了不少,今天我也给自己的网站添加上了这个效果。

首先分析一下原理:在图片外层套了一个容器,这个容器和图片大小一样,设置超出隐藏。然后给图片添加上放大效果就可以了。

不过初音社应用这个效果的地方的宽高是固定的,但本站文章里的图片宽高是不一致的,所以需要用JavaScript来设定外层容器的宽高。

实现步骤如下:

首先添加css样式:

.img_scale_wrap{overflow: hidden;} /*外层元素*/
.post_t img{transition:1s;} /*设置过渡时间*/
.post_t img[data-scale]:hover{transform: scale(1.2);} /*放大效果*/

然后添加JavaScript代码:

var post_img = document.querySelectorAll(".post_t img");	// 获取所有图片
if (post_img.length > 0) {
    // 给图片添加缩放控制层
    function set_post_img_wrap(img) {
    	if (img.height>=500) {	// 大于一定尺寸的才添加放大效果
    		img.setAttribute("data-scale", "");	// 添加放大属性
    		var post_img_wrap = document.createElement("div");
    		post_img_wrap.className = "img_scale_wrap";
    		img.parentNode.insertBefore(post_img_wrap, img);
    		post_img_wrap.appendChild(img);
    		post_img_wrap.style.width = img.width + "px";
    		post_img_wrap.style.height = img.height + "px";
    	}
    }
    // 给图片添加事件
    for (var i = post_img.length - 1; i >= 0; i--) {
        if (post_img[i].complete) {
            set_post_img_wrap(post_img[i]);
        } else {
            post_img[i].onload = function() {
                set_post_img_wrap(this);
            }
        }
    }
}

本文的代码也可以用在其他类型的网站上,不只是WordPress里才能用。但是移植时要按自己情况修改css选择器和js选择器。

给WordPress文章里的图片添加放大效果

06/29
16:10
软件

网站搬家记录

现在的网站:

 Apache iis web.config wordpress 伪静态 教程 经验 网站搬家

(话说IIS 8.5 比起IIS 6真是方便了太多)

以前我的网站用的是香港的一家虚拟主机,从一开始到现在,三年的时间都是在用那个空间。(主机商是51php,总体上满意,售后服务挺好。以后不用它了,就当做是帮它宣传一下吧)

其实我的网站只占用极少的磁盘空间和数据库空间,只有流量用的多。随着流量逐渐增长,我也不断升级主机套餐,最近又面临不得不升级的情况,我觉得不能再这样继续下去了,正好最近尝试了vultr的vps,所以打算把网站搬到vultr上面去。

本月的主机使用情况:

 Apache iis web.config wordpress 伪静态 教程 经验 网站搬家

其实现在套餐的流量是30GB/月,前几天就用完了,现在的45GB是我让客服临时加了点。虽然我最近做了些优化措施,但预计以后每月流量仍会达到20GB以上,现在这个套餐的流量未来也会不够用。

相比现在的虚拟主机,vultr的vps有诸多优势:
1.价格不贵,5美元/月,一年也就400RMB,和我现在这个虚拟主机套餐差不多是相同价位,但流量上限高得多;
2.vps可直接登陆操作系统,管理网站更为便捷,可以摆脱掉ftp了,对网站的控制也更加随心所以了;
3.避免一些奇葩的事情,比如之前我发现我的主机被禁止google抓取了,后来我找客服解除了限制。
3.vps作为一个操作系统,能做的事情比只能放网站的虚拟主机强多了,最简单的应用就是充当vpn上网。其他的比如架ss什么的我还没研究过。

我原来的虚拟主机的环境是Linux + Apache,但因为我不会linux,所以vultr上我安装的是windows + IIS。这个搬家的过程也踩了不少坑,也记录一下吧。
Read More →

网站搬家记录

02/16
17:17
学习

用PHP做一个设置网站副标题的接口

用PHP做一个设置网站副标题的接口 WordPress php 副标题 JavaScript aja mysql 数据库

WordPress设置网站副标题需要到后台的设置项里设置,操作起来太繁琐,于是我用php做了个设置网站副标题的接口。这个没什么技术含量,主要是熟悉下php对mysql数据库的基本操作流程。

首先是到数据库里找到网站副标题的字段:

用PHP做一个设置网站副标题的接口 WordPress php 副标题 JavaScript aja mysql 数据库

找到之后写出用于修改它的sql语句,如下:

UPDATE wp_options SET option_value = '大好き' WHERE option_name = 'blogdescription'

接下来做一个html文件和一个php文件,用html文件给php文件发送要设置的副标题,php接到请求后执行数据库操作。

功能做好之后,把html传到网站上,并保存成书签。以后想修改修改副标题只要打开这个书签,输入文字就可以了。
Read More →

用PHP做一个设置网站副标题的接口