月度归档:2012年11月

不用插件实现 WP-Pagenavi 功能

Pagenavi 是一个很好的功能,现在 WordPress 博客一般都是使用 WP-Pagenavi 插件来实现,其实 WordPress 现在已经自己支持 Pagenavi 功能了,只需要将下面简单的代码复制到当前主题的 functions.php 文件中,然后再相关的主题模板文件中使用 native_pagenavi() 函数就能实现 Pagenavi 的功能。

function native_pagenavi(){
    global $wp_query, $wp_rewrite;
    $wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;

    $pagination = array(
        'base' => @add_query_arg('page','%#%'),
        'format' => '',
        'total' => $wp_query->max_num_pages,
        'current' => $current,
        'prev_text' => '« ',
        'next_text' => ' »'
    );

    if( $wp_rewrite->using_permalinks() )
        $pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg('s',get_pagenum_link(1) ) ) . 'page/%#%/', 'paged');

    if( !empty($wp_query->query_vars['s']) )
        $pagination['add_args'] = array('s'=>get_query_var('s'));

    echo '</pre>
<div class="pagenavi">'.paginate_links($pagination).'</div>
<pre>
';
}

详细解释:paginate_links 是 WordPress 从 2.1 版本开始就提供的函数,它可以在任何地方显示页码导航链接。这个函数的基本参数如下:

其中 ‘base’ 参数用来提供创建页面链接的参考链接,’format’ 参数是用来替换成页码。’total’ 参数是设置页面的总数,’current’ 参数用于设置当前的页码,它们都必须是整数。这些参数我们在使用的时候必须提供的。

[……]

Read more

win8终于搞定啦

经过我两天的折腾,终于搞定了win8,刚开始的时候因为我电脑的内存有点小,只有2G,运行win8的时候有点卡,所以果断在亚马逊上面买了一个4g的内存条,金士顿的,瞬间感觉爽多了,游戏什么的也都流畅多。而且win8带的hyper-v创建虚拟机也快的多,感觉最悲剧的就是显卡驱动,因为信不过驱动精灵,所以[……]

Read more

ubuntu搭建vpn服务器

1.安装pptpd,这是个VPN服务器端软件

sudo apt-get install pptpd
2. 修改文件 /etc/pptpd.conf

sudo vim /etc/pptpd.conf

找到# TAG: localip 这行,

在后面添加以下2行:

localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
3. 修改文件 /etc/ppp/pptpd-options

sudo vim /etc/ppp/pptpd-options
找到 #ms-dns这行,去掉前面的#号,修改成google提供的DNS server或其他DNS:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
4. 修改文件 /etc/ppp/chap-secrets

vim /etc/ppp/chap-secrets
按一行四列添加账号、服务器名、密码和IP限制。服务器名(默认 写pptpd 即可,务必与 pptpd-options 文件的name一行一样)。如创建一个名为user,密码为userpasswd,不限制登录IP的VPN账号:

user pptpd userpasswd *
其中第第一列是用户名,第二列是服务器名(默认写 pptpd 即可,如果在 pptpd-options 文件中更改过的话,注意这里保持一致),第三列是密码,第四列是 IP 限制(不做限制写 * 即可)。

[……]

Read more

mysql自动备份脚本

由于服务器不是很稳定,所以想到最好还是每天备份一次数据库,正所谓数据无价么,要是万一哪天丢了就悲剧了,下面分享给大家我的数据库备份脚本

首先使用vim创建一个备份文件

vim mysqldump

将下面这段代码复制进去


#!/bin/sh

DUMP=/usr/bin/mysqldump #mysqldump备份程序执行路径

OUT_DIR=/var/www/mysql_data #备份文件存放路径

LINUX_USER=root #系统用户名

DB_NAME=wordpress #要备份的数据库名字

DB_USER=root #数据库用户名

DB_PASS= #数据库密码

DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份

cd $OUT_DIR #进入备份存放目录

DATE=`date +%Y_%m_%d` #获取当前系统时间

OUT_SQL="wordpress$DATE.sql" #备份数据库的文件名

TAR_SQL="wordpress$DATE.tar.gz" #最终保存的数据库备份文件名

$DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables> $OUT_SQL #备份

tar -zcvf $TAR_SQL $OUT_SQL #压缩为.tar.gz格式

rm $OUT_SQL #删除.sql格式的备份文件

chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL #更改备份数据库文件的所有者

find $OUT_DIR -name "$DB_NAME_bak*" -type f -mtime +$DAYS -exec rm {} ; #删除7天前的备份文件(注意:{} ;中间有空格)

deldate=` date -d -7day +%Y_%m_%d ` #删除7天前的备份

然后赋予可执行权限

sudo chmod  777    mysqldump

[……]

Read more