记录日常点点滴滴,欢迎来到我的小站。

0%

一, 在Storage中建好一个叫wordpress的domain 在SAE上创建应用,安装WordPress for SAE版本的时候会提示要先在Storage中建个wordpress的domain。

二, 在应用的根目录,创建sae.php文件
1).先用svn的工具TortoiseSVN把应用的代码全部checkout到本地。
2).在应用的根目录,创建sae.php文件
代码如下:

1
2
3
4
5
6
7
<?php
/* 在SAE的Storage中新建的Domain名,比如“wordpress”*/
define('SAE_STORAGE',wordpress);
/* 设置文件上传的路径和文件路径的URL,不要更改 */
define('SAE_DIR', 'saestor://'.SAE_STORAGE.'/uploads');
define('SAE_URL', 'http://'.$_SERVER['HTTP_APPNAME'].'-'.SAE_STORAGE.'.stor.sinaapp.com/uploads');
?>

三, 修改wp-includes/functions.php文件
1).

1
require( ABSPATH . WPINC . '/option.php' );

前添加一行:

1
include( ABSPATH . '/sae.php' ); //调用SAE的Storage文件域名设置 //for SAE

2).注释掉如下代码,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*** Step 1: include sae.php ***/
include( ABSPATH . '/sae.php' ); //添加这一行。调用SAE的Storage文件域名设置
require( ABSPATH . WPINC . '/option.php' );
前添加

/*** Step 2: 替换代码 ***/
/*
$wrapper = null;

// Strip the protocol.
if (wp_is_stream ( $target )) {
list ( $wrapper, $target ) = explode ( '://', $target, 2 );
}

// From php.net/mkdir user contributed notes.
$target = str_replace ( '//', '/', $target );

// Put the wrapper back on the target.
if ($wrapper !== null) {
$target = $wrapper . '://' . $target;
}
*/

//替换为以下代码
// from php.net/mkdir user contributed notes
if (substr ( $target, 0, 10 ) == 'saestor://') {
return true;
}
$target = str_replace ( '//', '/', $target );

/*** Step 3: 添加代码 ***/
$dir = SAE_DIR; //添加这一行
$url = SAE_URL; //添加这一行
$basedir = $dir;

/*** Step 4: 添加代码 ***/
//添加如下代码块
if ( !function_exists('utf8_encode') ) {
function utf8_encode($str) {
$encoding_in = mb_detect_encoding($str);
return mb_convert_encoding($str, 'UTF-8', $encoding_in);
}
}

//在这前面添加上述代码
/**
* Send a HTTP header to limit rendering of pages to same origin iframes.
*
* @since 3.1.3
*
* @see https://developer.mozilla.org/en/the_x-frame-options_response_header
*/

四, 修改wp-admin/includes/file.php

1
2
3
4
5
/*** 注释如下代码 ***/
// Set correct file permissions.
$stat = stat ( dirname ( $new_file ) );
$perms = $stat ['mode'] & 0000666;
@ chmod ( $new_file, $perms );

一、IE8报下面错误,解决办法:
网页错误详细信息
消息: HTML Parsing Error: Unable to modify the parent container element before the child element is closed (KB927917)
行: 0
字符: 0
代码: 0
1、查看是否有未关闭的html标签,比如

而没有

2、是否在页面未加载完前js代码操作了body里的元素,将相关js代码移到后面
3、是否在代码中添加了addthis分享js
4、是否IE8打开了兼容性视图
(我的页面出错就是3、4两个原因导致的)

阅读全文 »

禁止普通用户通过sudo su命令进入root模式的方法(在root模式下操作):

1
2
# chmod 777 /etc/sudoers
# vi /etc/sudoers

在里面添加一行

1
your_username ALL=(ALL:ALL) ALL,!/bin/su

这里的your_username 想要禁止的用户名

1
2
:wq (保存并退出)
# chmod 0440 /etc/sudoers

PS:千万别忘了把默认账户添加密码

两种方法:

第一种:改代码

wordpress添加文章后,内容部分自动添加p标签,这个现象让人很火大,阻止这个现象的办法就是:
打开服务器在博客文件中的wp-includes/formatting.php,它允许你禁用此功能。
打开formatting.php并找到功能wpautop你会看到:

1
function wpautop($pee, $br = 1)
阅读全文 »

1
2
3
4
5
6
7
8
function get_user_id($mail){  
$user="'".$mail."'";
global $wpdb;
$user_ids = $wpdb->get_col("SELECT ID FROM $wpdb->users WHERE user_email = $user ORDER BY ID");
foreach($user_ids as $user_id){
return $user_id;
}
}

调用的时候在页面中直接添加

1
2
3
<?php
echo get_user_id(邮箱); //显示用户ID
?>

wordpress在开放用户登陆注册时需要获取当前登录用户信息功能。
我们的目的就是欢迎当前的登录用户啦,当然这仅仅是最简单的目的,更深层次的目的是根据当前登录用户控制用户的行为,比如你想让当前用户能看什么,不能看什么,也就说控制用户的权限。当然这个就超出了本文的范围了,本文仅仅是教你如何获取当前登录用户信息。

1)使用函数 get_currentuserinfo();
此函数将当前登录用户信息赋给全局变量$current_user以及一些单独的用户信息全局变量例如$display_name, $user_email等。 代码如下:

阅读全文 »

今天在几个朋友的帮助下发现Gravatar 应该是彻底被墙了,根本无法访问了,可能是最近大会或者什么其他原因吧,还有人因为什么被抓起来了,太多东西也不好评价。我Gril Friend Wall 果然是天下无敌。

年纪大了折腾的精力就不如从前了,只想用最简单的方法解决问题,我采用了第一种方法,直接调用官方的数据,理论上应该是最稳定的了(没被墙的前提下)。

调用ssl 头像链接

https还是没被墙的,而且速度还不错,直接调用这个最简单了。

如果你的网站启用了ssl则不需要了,否则functions.php 加入如下代码

1
2
3
4
5
function get_ssl_avatar($avatar) {
$avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

一套完整的WordPress模板应至少具有如下文件:

1
2
3
4
5
6
7
8
9
10
11
12
style.css : CSS(样式表)文件
index.php : 主页模板
archive.php : Archive/Category模板
404.php : Not Found 错误页模板
comments.php : 留言/回复模板
footer.php : Footer模板
header.php : Header模板
sidebar.php : 侧栏模板
page.php : 内容页(Page)模板
single.php : 内容页(Post)模板
searchform.php : 搜索表单模板
search.php : 搜索结果模板
阅读全文 »