WordPress文章转载版权信息添加(第二篇):添加编辑面板

昨天写了一篇文章《WordPress添加文章转载版权信息(第一篇):自定义栏目(字段)来实现》,文中说到使用自定义字段来实现转载版权信息的添加,但是这个方法依然显得有些麻烦,所以今天这篇文章就准备说说如何改进(如果没有看上一篇文章,建议看一遍,因为下文用到了上文的参数和值)。

自定义的转载版权信息面板

我们可以使用自定义面板来完成这个工作,先来看看我自定义的面板样子(右图),这个面板就位于文章编辑栏的右侧,“版权类型”默认就是“原创可以被转载”,即reprint为pr,下面两栏分别对应info和src。

添加面板相对来说要简单一些了,仅仅是更改代码而已,所有代码都在主题的function.php中添加,添加到文档末尾的?>上面(如果没有?>,那就添加到末尾即可),由于代码比较长,我拆成了几块,挨个贴进文件即可:

继续阅读

WordPress添加文章转载版权信息(第一篇):自定义栏目(字段)来实现

开篇还是有必要说说这篇文章要讲什么的好,这篇文章主要说说怎么给每篇文章底部添加转载版权信息,就比如有的博客底部会写像“本文转载请注明出处”类似的话(Juwend’s也有写哦)。那么方法可以有很多:

一般人首先想到的肯定是手动添加,那如果选择手动为每一篇文章添加这个信息,不仅麻烦,还不方便管理,比如要改变这句话的内容,不说几百篇,几十篇文章也会改疯掉的,如果会sql还好一点,不会就惨了,所以手动为每一篇文章添加的确不是一个好办法。

第二种呢,更改主题模版,让这句话固化到代码中,比如固化到single.php中,在调用了the_content()方法后添加这句话,这样每篇文章就会自动添加这句话了,但是又有个问题了,如果这篇文章是转载的呢?这就麻烦了,依然会显示这句话,不合适,所以这个办法也不是一个好办法(网上大多教程就是这样做的)。

按照套路,肯定是有第三种方法的,没错,那就是在编辑文章时,设置一个值,当该值为不同时,就可以自动显示不同的信息了,而这些信息依然固化在代码中,每次显示都从这个地方取,这样修改起来也可以达到修改一初改变所有的目的。下面就来说说怎么做:

如何才能添加一个值呢,这时想到了wordpress的自定义栏目,习惯叫自定义字段,这个字段的作用就是可以添加一些附加信息到文章里面,但是和文章的内容是独立开来的。现在来添加一个自定义字段:

继续阅读

https部署折腾(提纲):利用阿里云CDN将阿里云虚拟主机上的WordPress博客部署为https

这篇文章大体上是个提纲性的文章,将罗列我把Juwend’s部署为https的步骤,每一步都有直达教程的链接(如果没有就是还没有写…呵呵),下面我们就开始罗列:

  1. 申请startssl免费证书,包括:
    1. 安装openssl,制作私钥key和证书申请文件csr(教程:https部署折腾(二):OpenSSL通过PEM格式私钥生成用于申请SSL证书的CSR文件》)
    2. 注册startssl和申请证书(教程:https部署折腾(三):StartSSL申请免费SSL证书的方法》)
  2. 购买阿里云的CDN,配置阿里云的CDN(以下简称CDN)的https加速(教程待更新)
  3. 修改wordpress的文件,主要是下面两个文件:
  4. 修改.htaccess文件。部署CDN后,需要设置 带www的域名 的 CNAME 到阿里云CDN 上,其实就是将用户对网站的访问重定向到CDN的主机上,这里我只能设置 带www的域名,所以 没有www的域名 是不经过CDN的,所以要把 没有www的域名 的访问重定向到 有www的地址。
    修改.htaccess文件教程:https部署折腾(一):.htaccess配置重定向参数RewriteCond和RewriteRule解释

继续阅读

站点部署CDN

日志

部署阿里云CDN!

前几日使用阿里云的CDN部署了https,其实https只是阿里云CDN的一个附属功能,CDN最重要的功能是为了缓存站点页面,达到访问时极速加载页面的效果,当然,我不能错过这个折腾机会。

结果就是,被虐了一次又一次,最终还是成功的将站点部署到了CDN上,其实部署CDN操作很简单,只用在CDN上设置缓存的文件后缀或目录即可。

但是CDN有个问题,当wordpress使用伪静态并将网址结尾设置为“.html”时,如果CDN设置后缀为html的文件要缓存,那么部署成功后,在这些页面写评论后就会出现不显示刚写的评论的问题,这个是CDN的通病… 原理具体可以了解下CDN,概括起来就是CDN去获取源站点的数据,然后缓存在自己服务器,这样相当于一个快照,后面的更新自然就不会显示了。

此时,我采用了一个方法来解决,就是动态加载评论,专业点就叫AJAX加载评论,因为AJAX访问的是php页面,是没有设置缓存的,这样就可以解决这个问题了。但是问题又出现了,原生的评论是,当游客在wordpress评论后,应该会出现这条评论,并且显示“正在等待审核”的字样,而现行网上能找到的教程大多无法还原这个功能,后面,我也是经过几番琢磨,终于搞定了,当然也被虐的不要不要的… 其实最大的问题主要还是不懂PHP,SO卖个关子,先提示一个,待审核的评论是根据cookie中存储的用户邮箱来筛选数据并加载的,哈哈,就酱,这个教程就下回分解啦!

https部署折腾(一):.htaccess配置重定向参数RewriteCond和RewriteRule解释

对于完成一件比较麻烦的事,做完后是一定要写教程的,呃,其实应该是记录过程,也不是想教谁,只是希望以后自己再用的时候还找得到用法。话说过程是惊险刺激的,有时兴奋,有时却恨不得去屎… 而扫尾工作就是最枯燥到的了,比如现在… 但是事后不总结、不记录,那是永远无法成长的。就像我这次部署https一样,其实那篇发泄文(见《吐个槽,糟心的一天》)写完就打算放弃部署https了,结果文章结尾的时候提示了自己一个很重要的问题,最后找到了方法部署成功… 这个后期再说。

今天玩了下.htaccess,所以提前把这个写了,相当于是部署https的周边技术吧,有时间写一点,最后再汇总成如何部署https,我觉得这样不错,好了,说了这么多闲话了,开始教程吧。

.htaccess对于我来说就是用来做301重定向的,它的主要作用貌似也就是这个了。主要靠写在文件中的语句执行重定向,比如

<IfModule mod_rewrite.c> 
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

这个是一个基本配置,将“/”和404重定向到/index.php去,我们可以看到语句有好几种,比较关键的是RewriteCond和RewriteRule。

先举个栗子:

RewriteCond %{HTTP_HOST} ^(juw)end(s)\.com.*$ [NC]
RewriteRule aa(.*)cc(.*)$ http://ww\./$2/$1/%1/%2 [R=301,L]

看起来是有点复杂,先看结果:

网址输入地址:juwends.com/aaa/bbb/ccc/?p=1
重定向地址:http://ww.///a/bbb/c/juw/s?p=1

继续阅读

HTTPS终于搞好了

日志

网站终于实现HTTPS加密访问了!!!

wordpress + 阿里云虚拟主机 + 阿里云CDN + startssl免费证书

看!那抹绿色的“https”和小锁多漂亮啊…

那抹绿色的“https”和小锁多漂亮啊

还是折腾了一天多吧,现在终于搞好了,上一篇文章就可以看出我搞的是多么的辛苦和郁闷…

https虽然配置好了,但是要想整站https还有很多地址要更改,也会有些插件不能再用了,过几天补教程,这里的坑可多着呢…

凌晨5点了… 该睡觉了。

吐个槽,糟心的一天

状态

今天搞了一天的https配置,证书也申请了,CDN也配了,最后配置上https用不上… 结果啥都没有搞出来… 真是很糟心的一天…

我用的是阿里云的虚拟主机,要使用https需要配置阿里云的CDN,于是开通了CDN。

还需要证书,又去startssl申请了免费证书,配置到CDN后,以为输入https://www.juwends.com就可以进入https模式了… 哪知各种问题,本该使用https的css文件依然是http… 还有好多文件url也是那样… 后台就更无语了,直接无限重定向,完全进不去…

然后,我就把整个站点下载到本地,在本地尝试配置https,结果配置完后什么问题都没有!!!f**k

也许是本地使用Apache直接配置的https,而阿里云虚拟主机使用的Ngnix+CDN间接配置的https的原因吧,也可能是wordpress的问题,想想,教程好像是hexo搭建的博客,然后使用的阿里云虚拟主机,hexo是静态页面,本来过场就少的多…

唉,想通了再研究吧,有时间学学php呢,哈哈哈

CuteFTP显示隐藏文件

想改.htaccess,发现用CuteFTP连接FTP后看不到这个文件,于是网上搜了下,找到了教程,网上的使用的中文版软件,下面再说说英文版软件的操作。

1,选择软件左边栏的“Site Manager”(站点管理器)栏,如果没有FTP连接就新建一个FTP连接(右键->New->FTP Site),然后在建好的连接上右键->Properties(属性)。

2,选择“Action”(动作)栏。

3,选择下方的“Filter”(过滤器)按钮。

4,在“Filter Properties”(过滤器属性)栏,勾选“Enable filtering”(启用过滤器)。

5,勾选“Serve side filtering”(服务端过滤起)框中的“Enable server side filtering …”(启用服务端过滤器)选项。

6,下方“Remote filter”(远程过滤器)填上“-a”。

这样就设置完毕了,连接FTP,就可以看到隐藏文件.htaccess了。

附个设置图片:

CuteFTP显示隐藏文件

CuteFTP显示隐藏文件

openssl.org打不开的解决方法

想下载openssl,发现下载页面openssl.org/source打不开… 不知道是不是被我国最先进的墙给挡了…

怎么办呢?这时度娘就有用了,用百度搜索“openssl.org/source”,结果的第一条就是该页面了,点击条目尾巴上的“百度快照”,我们就可以看该网页的快照了,相当于看这个页面,虽然可能是之前的数据,但是总比打不开好啊。

然后找到下载地址,下载就可以了!

UIScrollView PagingEnabled的转屏问题

应用支持用户转动手机后,UI会跟随转动,此时就需要对我们的页面设置转屏支持;如果界面中包含UIScrollView(此时要求UIScrollView的width和height是不相等的,看完本文就明白),并且UIScrollView isPagingEnable为true时,在转屏后,UIScrollView的page滑动就会出现问题(无法滑动到正确的页,一般情况下会滑走多个页),如何解决,请继续看。

继续阅读

Win10下安装Deepin Linux双系统导致Win10无法更新和睡眠

之前为了学习linux,在本有的win10系统下安装了Deepin双系统,后面才发现win10貌似无法自动更新了,更新总是失败,而且更意外的是,win10无法睡眠,无法休眠… 点击睡觉按钮后,屏幕是熄了,但是电脑根本没有要睡眠的样子,硬盘一直在转,风扇也在转… 还以为是win10系统出了问题,弄了好久,今天终于真正怀疑到linux上了(其实一直在怀疑,但是还是选择相信Deepin),于是找个PE把启动分区改为了win10的分区,完成后,进入系统,顺利更新,顺利睡眠…

看来Deepin还是存在问题啊,应该是在启动上面,估计win10的更新也有点辣鸡,唉… 蓝瘦香菇… 累觉不爱…

还是换成ubuntu试试吧… 下面来说说怎么恢复成windows启动,网上很多使用mbrfix的,但是我有两块磁盘,不知道磁盘参数该填写什么,还是用比较熟悉的DriverGenius吧。

首先,你得有个PE系统,PE系统里面有DriverGenius,或者类似的磁盘管理软件。

然后,进入PE,打开DriverGenius,看到磁盘后,你会发现win的启动分区盘不是活动的,而linux启动分区是活动的,这时将win的启动分区设置为活动的,然后再保存一下mbr就好了。

重新启动,就可以从windows启动了,这时linux分区并没有删除的,只是不能启动了,进入windows后可以做任何操作了。(我现在只想格式化掉那货…)

SQL中的转义字符

之前写了篇文章《Oracle转义字符》,说到了Oracle中单引号“’”的转义字符是单引号“’”,那么其他的特殊字符的转义字符又是什么呢,如模糊查询的占位符“%”,“_”等。

经过测试,在Oracle中不能再使用单引号“’”来转义“%”,“_”了,而是用反斜杠“\”,不仅如此,还要声明反斜杠“\”是转义字符。

假设表为tb,字段为col,要在col中查询包含“%”或“_”字符的字段,sql如下:

-- Oracle

select * from tb where col like '%\%%' or col like '%\_%' escape '\'

sql中“escape”表明声明反斜杠“\”为转义字符,紧接在“\”后的“%”就表示“%”符号,而左右两边的“%”表示模糊查询占位符。

注意:“%”,“_”作为占位符只会出现在where之后,如果是select ‘%’ from dual就不用转义了。

而MySQL中也是大同小异,不过MySQL不用写“escape”了,直接使用反斜杠“\”就可以了。

继续阅读