月度归档:2015年10月

关闭WordPress自动更新

当网站定型后,为了避免代码更新和插件不兼容等情况,可以将WordPress的自动更新功能关闭,同时关关闭主题和插件的更新,具体操作为:

1、关闭WordPress更新。

修改根目录下的wp-config.php,加入以下行:

define( 'AUTOMATIC_UPDATER_DISABLED', true );

2、关闭WordPress核心、主题、插件更新和更新提示。

在管理界面修改function.php,加入以下行:

add_filter('pre_site_transient_update_core',    create_function('$a', "return null;"));#关闭核心提示
add_filter('pre_site_transient_update_plugins', create_function('$a', "return null;"));#关闭插件提示
add_filter('pre_site_transient_update_themes',  create_function('$a', "return null;"));#关闭主题提示
remove_action('admin_init', '_maybe_update_core');
#禁止 WordPress 检查更新
remove_action('admin_init', '_maybe_update_plugins');
#禁止 WordPress 更新插件
remove_action('admin_init', '_maybe_update_themes');
#禁止 WordPress 更新主题

 

Godaddy上.in和.io域名出现注册Bug

今天登录Godaddy想淘个新域名看看,结果让我看见了.io和.in这两个后缀的域名,想着可能和单词结尾有点关系就随便试了试,结果发现现在Godaddy上的这两个域名注册是有bug的,很多明显不可能没被注册的域名(例如come.in、link.in、r.io、a.io、b.io)都显示为可以注册状态,甚至可以到支付页面。

检索截图:

20151030135524 20151030135543 20151030135721

以a.io为例:

20151030135831

支付过程截图:

20151030135852 20151030135922

加快WordPress访问速度和SEO的修改

1、增加head中“keywords”和“description”的<meta>信息,在header.php中加入以下内容

<meta name="keywords"  content="YOUR_KEYWORDS" />
<meta name="description"  content="YOUR_DESCRIPTION"/>

2、底部增加登录/登出按钮和回到顶部按钮,在footer.php中加入以下内容

#登录/登出按钮
<?php $current_user = wp_get_current_user();
    if ( 0 == $current_user->ID ) {
        echo "<a href='http://blog.zivers.com/wp-login.php'>登录</a>";
    } else {
        echo "<a href='http://blog.zivers.com/wp-login.php?action=logout'>登出</a>";
    }
?>

#回到顶部按钮
<a href="javascript:scroll(0,0)" style="float: right">返回顶部</a>

3、删除管理模式下页面左上角的WordPress Logo,在functions.php中加入以下内容

add_action( 'admin_bar_menu', 'cwp_remove_wp_logo_from_admin_bar_new', 25 );
function cwp_remove_wp_logo_from_admin_bar_new( $wp_admin_bar ) {
    $wp_admin_bar->remove_node( 'wp-logo' );
}

4、删除页面引用CSS和JS时所带的版本号(ver参数)。在functions.php中加入以下内容

在之前的帖子 替换wordpress登录页logo的方法 中有提到过这个参数,十分多余,不如删了。

if(!function_exists('cwp_remove_script_version')){
    function cwp_remove_script_version( $src ){  return remove_query_arg( 'ver', $src ); }
    add_filter( 'script_loader_src', 'cwp_remove_script_version' );
    add_filter( 'style_loader_src', 'cwp_remove_script_version' );
}

5、删除Google字体open sans的调用,在functions.php中加入以下内容

class Disable_Google_Fonts {
    public function __construct() {
        add_filter( 'gettext_with_context', array( $this, 'disable_open_sans' ), 888, 4);
    }

    public function disable_open_sans( $translations, $text, $context, $domain ) {
        if ( 'Open Sans font: on or off' == $context && 'on' == $text ) {
            $translations = 'off';
        }
        return $translations;
    }
}
$disable_google_fonts = new Disable_Google_Fonts;

6、清理WordPress前台信息,在functions.php中加入以下内容

function cwp_header_clean_up(){
    if (!is_admin()) {
        foreach(array('wp_generator','rsd_link','index_rel_link','start_post_rel_link','wlwmanifest_link') as $clean){remove_action('wp_head',$clean);}
        remove_action( 'wp_head', 'feed_links_extra', 3 );
        remove_action( 'wp_head', 'feed_links', 2 );
        remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );
        remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
        remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 );
        foreach(array('single_post_title','bloginfo','wp_title','category_description','list_cats','comment_author','comment_text','the_title','the_content','the_excerpt') as $where){
         remove_filter ($where, 'wptexturize');
        }
        /*remove_filter( 'the_content', 'wpautop' );
        remove_filter( 'the_excerpt', 'wpautop' );*/
        wp_deregister_script( 'l10n' );
    }
}

在Linux(Ubuntu)下配置和使用Git

下文由于本人学习时尚未精通,有许多错误,不具有参考价值。@20160223

安装Git

sudo apt-get install git

在GitHub上注册帐号

设置git用户名和邮箱

$ git config --global user.name "<YOUR NAME>"
$ git config --global user.email "<YOUR EMAIL ADDRESS>"
# 尖括号“<>”内为所需要替代的内容,需要用具体项目信息替代,替代应包含尖括号。下同。
# 第一条命令替代后为:$ git config --global user.name "HenryZivers"

SSH配置

查看是否已经存在Key

$ ll -al ~/.ssh

如果key存在则会打印类似如下信息,若不存在则继续。

> id_*.pub

如果上步中有Key则忽略此步,如果没有则创建新的SSH Key

$ ssh-keygen -t rsa -b 4096 -C "<YOUR_EMAIL@EMAIL.com>"
# 引号内输入你的邮箱

接下来将提示配置SSH Key。

第一步默认设置就好,第二部输入一个Private口令,随便输入一段你能够记住的英文就好。

Enter file in which to save the key (/Users/<USERNAME>/.ssh/id_rsa): <回车>
Enter passphrase (empty for no passphrase): <YOUR PHRASE>
Enter same passphrase again: <YOUR PHRASE>

之后将会收到创建成功的提示信息

Your identification has been saved in /home/<USERNAME>/.ssh/id_rsa.
Your public key has been saved in /home/<USERNAME>/.ssh/id_rsa.pub.
The key fingerprint is:
2e:53:b7:eb:00:ed:bc:8d:aa:c3:75:86:90:e3:87:50 <YOUR_EMAIL@EMAIL.com>
The key's randomart image is:
+--[ RSA 4096]----+
|                 |
|    E            |
|   . .           |
|  . +  .         |
|   o +..S .      |
|    o +*o. .     |
|   . ooo= .      |
|    o  o = .     |
|    .o..o.+      |
+-----------------+

将生成的SSH Key加入SSH-Agent首先确认ssh-agent服务已经启用

$ eval "$(ssh-agent -s)"

将SSH Key加入SSH-Agent

$ ssh-add ~/.ssh/id_rsa

连接Github账户首先查看生成的SSH公钥

$ cat ~/.ssh/id_rsa.pub

复制打印出的类似以下的信息,即公钥

ssh-rsa 
···
···
···= <YOUR_EMAIL@EMAIL.com>

在GitHub的任意页面点击头像,选择”setting”->”SSH Keys”->”Add SSH Key”。将上面的公钥填入输入框,Title任取。
测试连接是否成功输入以下命令

$ ssh -T git@github.com

根据提示键入之前设置的口令

<YOUR PHRASE>

返回授权成功信息即连接成功

Git基本用法

  • 创建仓库进入所需要上传文件的目录
$ cd /srv/www/<YOUR_REPO>
  • 创建git环境
$ git init
  • 创建一个本地仓库连接到GitHub
$ git remote add origin git@github.com:<GIT_USERNAME>/<YOUR_REPO>.git
#<GIT_USERNAME>为GitHub用户名,<YOUR_REPO>为要上传到的仓库
  • 克隆项目到本地进入项目需要存放的目录,例如
$ cd /srv/www
  • 使用git clone命令克隆项目到本地
$ git clone https://github.com/<GIT_USERNAME>/<YOUR_REPO>.git
  • push/pull/add/commit/fetch/merge

使用commit命令提交到本地仓库,-m参数可以填入说明信息

$ git commit -m <说明信息>

使用add命令添加文件或目录到本地仓库

$ git add <文件/目录名>

使用push命令提交更改到github仓库

$ git push origin master

使用fetch命令获取最新的版本,使用merge命令将更新的内容合并到本地分支

$ git fetch origin
$ git merge origin/master

直接拉取最新版本合并

$ git pull origin master
  • 分支管理

创建本地分支

$ git branch <分支名>

同步到GitHub

$ git push <本地仓库名>:<分支名>

切换分支

$ git checkout <分支名>

查看分支信息

$ git branch

删除分支

git branch -d <分支名>

将删除命令同步到GitHub

git push <本地仓库名>:<分支名>

Git ignore

可以使用.gitignore方式忽略不需要上传的文件,具体方法为在需要忽略的目录下创建.gitigore文件,在文件内写入需要忽略的文件/目录名

$ touch .gitignore

用vi命令编辑

$ sudo vi .gitignore

以斜杠“/”开头表示目录;

以星号“*”通配多个字符

以问号“?”通配单个字符

以方括号“[]”包含单个字符的匹配列表;

以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;

例如:

/foo
# 忽略/foo目录
*.html
# 忽略所有.html文件
/bar/*
# 忽略/bar目录下的所有文件,但不忽略/bar目录本身
!/bar/setting.txt
# 接上条,在忽略/bar目录的前提下,不忽略setting.txt这个文件

 

WordPress标签云小工具美化

之前的标签云小工具丑的不堪入目,所以需要对它进行一些美化。

这里需要修改style.css文件,在文件中加入以下样式代码:

.tagcloud {
	margin-top: 25px;
}

.tagcloud a {
	padding: 6px 7px;
	margin-right: 0;
	margin-bottom: 4px;
	line-height: 100%;
	display: inline-block;
	color: #FFF !important;
	background-color: #DADADA;
	border-radius: 3px;
	-webkit-border-radius: 3px;
	font-size: 12px !important;
	-webkit-transition: background-color .3s linear;
}
	
.tagcloud a:hover {
	background-color: #75a5b5;
	border-color: #75a5b5;
}

最后的实现效果如下图:

20160516125944

替换WordPress登录页logo的方法

由于WordPress版本的更新,替换这个logo已经不是像原来一样只需要替换一个logo-login.png这么简单的事情了。现在WordPress的登录页面logo已经替换成.svg格式,并在链接中加入了版本标记,所以直接替换是不起作用的,必须把版本号一起改了。下面是具体步骤:

1、首先需要一个64×64的.svg文件,没有的话用png在线转一个,在线转换。将此文件重命名为:

wordpress-logo.svg

2、审查元素发现在登录页面调用了一个叫做login.min.css的样式表(请注意这个样式表是带ver字段的,也就是说有版本号的区别)。在第1290行标记了logo的URL20151023124006

请注意,这个URL也是带版本号的,之后要修改。

background-image: none,url(../images/wordpress-logo.svg?ver=20131107);

3、将/wp-admin/images/中的wordpress-logo.svg用步骤1中的文件替换

4、修改login.min.css

~# vi wp-admin/css/login.min.css

找到步骤2中所提到的字段,将ver=20131107修改为步骤1中.svg文件的创建日期(我是今天创建的所以日期是20151023),或者直接删除“ ?ver=20131107 ”。

5、修改css完成后,这个css文件并没有生效,因为在wp-login.php中是这样引用的:

<link rel='stylesheet' id='login-css' href='http://blog.zivers.com/wp-admin/css/login.min.css?ver=4.3.1' type='text/css' media='all'/>

注意到,css的引用中也带了ver参数,即也有版本控制。所以我们需要更新一下css的引用

~# vi wp-login.php

找到下面这一行

wp_admin_css( 'login', true );

在wp-login中是调用了wp_admin_css()这个方法来生成css引用列表的。我们可以在wp-includes/general-template.php这个文件中找到wp_admin_css()方法的声明:

function wp_admin_css( $file = 'wp-admin', $force_echo = false ) {
        // For backward compatibility
        $handle = 0 === strpos( $file, 'css/' ) ? substr( $file, 4 ) : $file;

        if ( wp_styles()->query( $handle ) ) {
                if ( $force_echo || did_action( 'wp_print_styles' ) ) // we already printed the style queue. Print this one immediately
                        wp_print_styles( $handle );
                else // Add to style queue
                        wp_enqueue_style( $handle );
                return;
        }

        echo apply_filters( 'wp_admin_css', "<link rel='stylesheet' href='" . esc_url( wp_admin_css_uri( $file ) ) . "' type='text/css' />\n", $file );

        if ( function_exists( 'is_rtl' ) && is_rtl() ) {
                /** This filter is documented in wp-includes/general-template.php */
                echo apply_filters( 'wp_admin_css', "<link rel='stylesheet' href='" . esc_url( wp_admin_css_uri( "$file-rtl" ) ) . "' type='text/css' />\n", "$file-rtl" );
        }
}

所以,重新生成只需要在调用wp_admin_css的时候将参数$force_echo设为false即可,即修该wp-login.php中的调用语句:

wp_admin_css( 'login', false );

6、刷新登录页面即可看到效果。

为了安全,将刚才修改的wp_admin_css()方法的参数改回true。