使用百度 WordPress 结构化数据插件,解决博客内容收录问题

博客文章收录慢?内容收录不全?马上使用百度WordPress结构化数据插件,轻松解决博客内容的收录问题,同时内容还能够在搜索结果中获得更丰富的展现,提高用户点击率。

百度WordPress结构化数据插件是百度站长平台提供的一款供站长使用的收录插件,安装该插件之后,能够及时将博客内容推送给百度,保证内容快速全面的被收录。安装插件之后,博客的内容还能够在搜索结果中获得更丰富的信息展示,提升用户体验,提高用户点击率。

独特优势:

1、安装插件后,能够遍历博客所有文章,自动生成sitemap提交给百度,保证博客历史内容的收录。

2、安装插件后,当博客中有新文章发布时,会将新内容实时推送给百度,大大提升博客新内容的收录速度。

3、博客内容在百度搜索结果中能获得更丰富的信息展示,提高用户点击率。

百度站长平台下载地址:http://zhanzhang.baidu.com/dataplug/index

第一步:下载适合版本的插件,解压文件至WordPress平台目录wp-content/plugins下;

第二步:在管理中心应用页面-插件列表目录下,启用“baidusubmit”插件;

第三步:启用插件后,验证网站网址,验证成功,插件安装完成。

[推荐]前端开发国产工具HBuilder

平时一直用的editplus,无意发现了一个Web开发IDE-hbuilder,http://www.dcloud.net.cn/

介绍:

HBuilder是我们认为当前最好的web开发工具。它能大幅提升开发效率,对程序员也设计了更人文关怀的UI,它包括最全面的语法库和浏览器兼容性数据。HBuilder是面向追求效率的极客开发者的,比如HBuilder强调的手不离键盘、飞一样编码。与之相对应的另一面代表是dreamweaver,dreamweaver拥有可视化拖拉拽布局页面的设计器,更多的是面向设计师或初学者。

222软件的优化不是很好,i7的电脑有时候联想的时候会卡,毕竟刚出来,还是国内的,可以支持一下,

最值得记住的优势还是那4点:

  • 最快的开发工具,五大助手大幅提升编码效率
  • 绿柔主题,保护健康
  • 最全的语法库
  • 最全的浏览器兼容性数据

哪些文件调用了 Google Fonts 和 Google Ajax 的服务

  • WordPress 3.5 之前的版本中,核心程序和自带主题都没有调用 Google Fonts 和 Google Ajax 服务。
  • WordPress 3.5 ~ WordPress 3.7 各版本中(含类似 3.5.1 这样的小版本),核心程序文件 wp-includes/script-loader.php 和自带主题的函数文件 functions.php 文件调用了以上服务:

    1. wp-includes/script-loader.php
    2. wp-content/themes/twentytwelve/functions.php
    3. wp-content/themes/twentythirteen/functions.php
  • WordPress 3.8 各版本中(含类似 3.8.1 这样的小版本),除了核心程序文件 script-loader.php 文件和自带主题的函数文件 functions.php 文件外,WordPress 自带编辑器的样式文件也调用了 Google Fonts 服务:

    1. wp-includes/script-loader.php
    2. wp-includes/js/tinymce/themes/advanced/skins/wp_theme/dialog.css
    3. wp-content/themes/twentytwelve/functions.php
    4. wp-content/themes/twentythirteen/functions.php
    5. wp-content/themes/twentyfourteen/functions.php
  • WordPress 3.9 各版本中(含类似 3.9.1 这样的小版本),和 WordPress 3.8 版本一样,只是 WordPress 自带编辑器的样式文件更换了位置:

    1. wp-includes/script-loader.php
    2. wp-includes/js/tinymce/plugins/compat3x/css/dialog.css
    3. wp-content/themes/twentytwelve/functions.php
    4. wp-content/themes/twentythirteen/functions.php
    5. wp-content/themes/twentyfourteen/functions.php

举个例子,比如我的网站 mydomain.com 使用的是 WordPress 3.9.1 版本(最新版本总是增加安全),和自带的 Twenty Fourteen 主题;那么我只需要修改 WordPress 3.9 版本中的1、2、5这三项。不过万一哪天我想要使用另外两款主题呢?如果你不想以后麻烦的话,我们建议你将这个5个文件一次都修改掉。

将 Google Fonts 和 Google Ajax 替换为 360 的镜像库服务

360公司及时推出了 Google Fonts 和 Google Ajax 的镜像服务。虽然我们一向对这个公司缺乏好感,但毫无疑问这项服务做得非常及时。其实 Google Fonts 服务对中文字体意义不大;Google Ajax 在国内也有很多类似的服务,比如新浪也提供类似的库服务。但是 360 完全镜像了 Google 的这两项服务,做了一个很不错的营销。

我们还是以网站 mydomain.com 为例,我们来依次修改上面 WodPress 3.9 版本对应的5个文件:

  1. 使用 FTP 软件将 wp-includes/script-loader.php 文件下载到本地;同时,建议将服务器上 script-loader.php 文件改名为 script-loader.php.backup 作为备份,
  2. 使用你常用的文本编辑器,比如 EverEdit 编辑器,打开 script-loader.php 文件,将其中 googleapis.com 全部替换为 useso.com , 
    这样,fonts.googleapis.com 就变成了 fonts.useso.com , ajax.googleapis.com 就变成了 ajax.useso.com 。
  3. 保存对 script-loader.php 文件所做修改,然后上传到 wp-includes 目录下。
  4. 对于另外4个文件,重复以上动作,完成修改。

这样,我们就将 Google Fonts 字体库和 Google Ajax JS资源库全部换成了360网站提供的服务上了。现在重新打开你的网站,速度是不是快了很多?

关闭 WordPress 的自动升级服务

WordPress 3.7版本发布的时候,引入了一个小版本自动更新的功能。很显然,如果我们开启这项功能,当 WordPress 发布新的维护更新的时候(比如 WordPress 3.9.2),会自动覆盖掉我们所做的修改。这是我们不希望发生的事情。

你可以在 wp-config.php 文件中加入一行代码,来关闭自动更新功能,这行代码放在数据库信息后面即可:

define('AUTOMATIC_UPDATER_DISABLED', true );

修改 wp-config.php 文件的办法,跟上面我们介绍的修改 script-loader.php 方法一样。

谷歌字体替换为360国内CDN,解决WP打开速度慢

由于google在中国访问时常抽风因此,也影响到了google api和一些公共服务,

而其中现在很流行的google fonts也饱受困扰,

很多google的公共库文件访问缓慢或者根本就是无法访问, 比如:

theme.googleusercontent.com

fonts.google apis.com

ajax.google apis.com 很多网站前端以前都是直接引用google的地址,这会或多或少的影响网站打开速度。

谷歌字体替换为360国内CDN,解决WP打开速度慢

最近360网站卫士提供的公共库资源( http://libs.useso.com/ ),效果果然提高不少。 

这个插件是调用360的CDN常用前端公共库替换所有谷歌google.com域名链接。

使用后,自己的网站速度已经比以前快了很多,几乎瞬间就可以拿到Google字体了。

本来需要从美国服务器才能拿到的google字体,现在已经遍布360全国的机房了。

Linux开机提示fsck.ext3:Unable to resolve ‘LABLE=XXXX’错误导致无法正常开机解决办法

导致这种原因发生的问题在于硬盘分区所给的Label name/etc/fstab这个文件中对应的“LABEL”项不匹配所导致的。


在此先献上解决办法供大家参考,后面还会提到一个地方自己无法理解,希望拿出来和大家探讨!


好了,废话不多说,解决办法有两个:(前提是开机都必须选择进入到单用户模式)

方法一:

1、  在此处输入root用户密码;

Linux开机提示fsck.ext3:Unable to resolve ‘LABLE=XXXX’错误导致无法正常开机解决办法 - po-jung - 〒.简简单单.

2、  通过blkid找出LABEL=”/date”的设备/dev/sdb1

(由此两幅图我们已经看到fsck.ext3:Unable to resolve ‘LABLE=/data/dev/sdb1LABEL=”/date因为写错一个字母所导致系统开机在通过/etc/fstab文件进行自动挂载时,因为找不到Label name=/data的磁盘导致的无法正常开机,因为我们磁盘sdb1是叫/date嘛!)

         #blkid        ——出入如下图所示

Linux开机提示fsck.ext3:Unable to resolve ‘LABLE=XXXX’错误导致无法正常开机解决办法 - po-jung - 〒.简简单单.

3、通过e2label/dev/sdb1Label name改成/data即可解决;

         #e2label /dev/sdb1 /data

4、最后就是重启了;

         #init 6


方法二:

1、  与方法一的第一步一样,输入root密码;

2、  重新挂载/目录,因为现在我们只有r读的权限,而没有w写的权限

#mount –o remount,rw /         ——此处是重新挂载/,并给予rw读写的权限

3、  与方法一的第二步一样,通过blkid查看发现/dev/sdb1Label name=/date

#blkid        ——出入如下图所示

Linux开机提示fsck.ext3:Unable to resolve ‘LABLE=XXXX’错误导致无法正常开机解决办法 - po-jung - 〒.简简单单.

 4、对/etc/fstab进行修改,将对应的LABEL=”/data”改成LABEL=”/date”

         #vim /etc/fstab

Linux开机提示fsck.ext3:Unable to resolve ‘LABLE=XXXX’错误导致无法正常开机解决办法 - po-jung - 〒.简简单单.

Linux开机提示fsck.ext3:Unable to resolve ‘LABLE=XXXX’错误导致无法正常开机解决办法 - po-jung - 〒.简简单单.

然后就是保存退出了;

5、最后就是重启啦

         #init 6

有兴趣听我继续扯下去的可以接着往下看啦! 

如果我有什么说的不对的地方大家可以留言提出进行改进,大家相互交流学习啦!

我们知道,在linux下面挂载硬盘分区到某个目录下有两种办法:

我拿硬盘的sdb1来做说明(此处指的是SATA接口的硬盘,IDE接口的硬盘应该是hdb1啦),我要将其挂载到/date下。

方法一:#mount /dev/sdb1 /date  ——直接指明设备挂载到/date目录下

方法二:#e2label /dev/sdb1 /date          ——对sdb1给予/date的标签命名

              #mount /date  /date                   ——再通过标签名对硬盘挂载

由此我们知道,linux挂载硬盘可以使用设备来挂载,也可以通过label name来对磁盘进行挂载。而/etc/fstab下的这个文件是在告诉系统每次开机对硬盘自动挂载到相应的目录下。

(#mount -a ——挂载所以未挂载的磁盘到相应的目录这条指令也是通过读取/etc/fstab文件进行挂载的。

Linux开机提示fsck.ext3:Unable to resolve ‘LABLE=XXXX’错误导致无法正常开机解决办法 - po-jung - 〒.简简单单.

当我们在/etc/fstab下面将LABEL这一项写错时,就会导致Linux开机提示fsck.ext3:Unable to resolve ‘LABLE=XXXX’错误导致无法正常开机,至于解决办法前面已经提到了。

但是这有个很奇怪的地方,就是当/etc/fstab下面的挂载点写错时,确不存在无法正常开机的现象。

正如上面所提到的当/etc/fstabLABEL=/data,而/dev/sdb1Label name=/date时无法正常开机;

而当/etc/fstabLABEL=/date,与/dev/sdb1Label name=/date相符合,而在/etc/fstab文件中LABEL=/date相应的挂载点写的是/data,但/目录并不存在一个挂载点为/data的情况下,却能正常的开机启动,不同的是/dev/sdb1(也就是/date)在开机后没被挂载上来而已。

正如,当我们要将一个U盘挂载到/mnt/u目录下面,我们需要做如下步骤:

#mkdir /mnt/u                    ——需要先为u盘创建一个目录做挂载点

#mount /dev/sdc /mnt/u           ——此处假设u盘为sdc设备

/mnt下面不存在u这个目录的时候是会报错而无法挂载。


    系统在开机读取/etc/fstab这个文件进行自动挂载时,因为找不到LABEL=/data(因为/dev/sdb1Label name=/date)而无法正常开机,那为什么系统开机在读取/etc/fstab这个文件进行自动挂载时,不会因为找不到LABEL=/date所对应的挂载点/data(如果/目录下存在的一个是/date目录而不能正常开机呢

 

Thinkphp 定制错误页面

默认情况下,ThinkPHP在发生错误的时候,显示的是系统默认的错误页面,正式上线的时候,为了统一用户体验,我们可以定制自己的错误页面,通常有两种方法:

一、定制系统错误页面模板

系统默认的错误模板位于:ThinkPHP/Tpl/think_exception.tpl

我们只需要在项目中修改TMPL_EXCEPTION_FILE配置参数重新指定错误模板即可。

'TMPL_EXCEPTION_FILE'=>'./App/Tpl/Public/error.html' // 定义公共错误模板

注意错误模板的路径是基于入口文件的相对地址或者使用服务器的绝对地址,错误模板中可以使用的变量有:

$e[‘file’] 异常文件名

$e[‘line’] 异常发生的文件行数

$e[‘message’] 异常信息

$e[‘trace’] 异常的详细Trace信息

因为异常模板使用的是原生PHP代码,所以还可以支持任何的PHP方法和系统变量使用。

二、设置错误重定向页面

如果想网站发生错误的时候重定向到一个指定的URL 而不是读取错误模板,我们还可以直接设置ERROR_PAGE参数。

'ERROR_PAGE'=>'/Public/error.html' // 定义错误跳转页面URL地址

注意ERROR_PAGE所指向的页面不能再使用异常的模板变量了。

PHP如何生成N个不重复的随机数?

有25幅作品拿去投票,一次投票需要选16幅,单个作品一次投票只能选择一次。前面有个程序员捅了漏子,忘了把投票入库,有200个用户产生的投票序列为空。那么你会如何填补这个漏子?

当然向上级反映情况。但是我们这里讨论的是技术,就是需要生成1-25之间的16个不重复的随机数,去填补。具体怎么设计函数呢?将随机数存入数组,再在数组中去除重复的值,即可生成一定数量的不重复随机数。

<?php
/*
* array unique_rand( int $min, int $max, int $num )
* 生成一定数量的不重复随机数
* $min 和 $max: 指定随机数的范围
* $num: 指定生成数量
*/
function unique_rand($min, $max, $num) {
    $count = 0;
    $return = array();
    while ($count < $num) {
        $return[] = mt_rand($min, $max);
        $return = array_flip(array_flip($return));
        $count = count($return);
    }
    shuffle($return);
    return $return;
}

$arr = unique_rand(1, 25, 16);
sort($arr);

$result = '';
for($i=0; $i < count($arr);$i++)
{
	$result .= $arr[$i].',';
}
$result = substr($result, 0, -1);
echo $result;
?>

程序运行如下:

2,3,4,6,7,8,9,10,11,12,13,16,20,21,22,24

补充几点说明:

生成随机数时用了 mt_rand() 函数。这个函数生成随机数的平均速度要比 rand() 快四倍。

去除数组中的重复值时用了“翻翻法”,就是用 array_flip() 把数组的 key 和 value 交换两次。这种做法比用 array_unique() 快得多。

返回数组前,先使用 shuffle() 为数组赋予新的键名,保证键名是 0-n 连续的数字。如果不进行此步骤,可能在删除重复值时造成键名不连续,给遍历带来麻烦。