最近由于原来的服务器问题,blog空间搬迁,同时数据也不是最新的了.数据库中的文章名称都是中文的.所以,在安装之后,使用wp-slug和colcachehtml两个插件之后,文章显示的链接是中文的.这个比较郁闷.
在网上搜索了很多关于wp-slug的使用已经方法,最后得出了一个结论:此插件只适合于新站,对于已经存在的文章不能使用,也就是说这个插件安装之后,只有新添加的文章会自动翻译标题,而以前存在的文章是不行的.
没办法,只有自己一条条的修改文章缩略名,但是文章数量太多了,只能自己动手弄个代码之类的批量翻译了.
好久没有写代码,所以粗劣的写了两行,如下,里面还是有一些不是很合理的,主要是在于文字字符处理方面,但是这个比没有代码强,所以,使用后,再更改个别的文章缩略名就可以了.
这样就把整站的链接搞定了
代码就发出来参考下吧:
translate.php:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="http://www.google.com/jsapi"></script>
<form action="google-submit.php" method="post" name="cartForm">
<?
//爱微网 www.iiwnet.com
$mysql_server_name="localhost"; //数据库服务器名称
$mysql_username=""; // 连接数据库用户名
$mysql_password=""; // 连接数据库密码
$mysql_database=""; // 数据库的名字
// 连接到数据库
$conn=mysql_connect($mysql_server_name, $mysql_username,
$mysql_password);
// 从表中提取信息的sql语句
$strsql="select id,post_title,post_name from wp_posts where post_parent=0 and id>0 and id<100 ";
// 执行sql查询
mysql_query("SET NAMES UTF8");
$result=mysql_db_query($mysql_database, $strsql, $conn);
$i=1;
// 循环取出记录
while($rs=mysql_fetch_object($result))
{
?>
<script type="text/javascript">
google.load("language", "1");
function initialize<?=$i?>() {
var text = document.getElementById("text<?=$i?>").innerHTML;
google.language.detect(text, function(result) {
if (!result.error && result.language) {
google.language.translate(text, result.language, "en",
function(result) {
if (result.translation) {
var cacheresult=result.translation;
document.cartForm.translation<?=$i?>.value =result.translation;
}
});
}
});
}
google.setOnLoadCallback(initialize<?=$i?>);
</script>
<div id="text<?=$i?>"><? echo $rs->post_title;?></div>
<input name="postid<?=$i?>" id="postid<?=$i?>" type="text" value=<? echo $rs->id;?>>
<input name="translation<?=$i?>" id="translation<?=$i?>" type="text">
<?
$i++;
}
// 释放资源
mysql_free_result($result);
// 关闭连接
mysql_close();
?>
</br>
<input name="numbers" id="numbers" type="text" value=<?=$i?>>
<input type="submit" id="submit" name="submit" value="submit">
</form>
处理页面:submit.php
<?
function dump($vars, $label = '', $return = false)
{
if (ini_get('html_errors')) {
$content = "<pre>\n";
if ($label != '') {
$content .= "<strong>{$label} :</strong>\n";
}
$content .= htmlspecialchars(print_r($vars, true));
$content .= "\n</pre>\n";
} else {
$content = $label . " :\n" . print_r($vars, true);
}
if ($return) { return $content; }
echo $content;
return null;
}
function replace($str){
$str=htmlentities($str,ENT_COMPAT,"GB2312"); //html编码
$str=str_replace(chr(13),"<br>",$str); //回车处理
$str=stripslashes($str); // /处理
$str=str_replace("?","",$str); //
$str=str_replace("(","",$str); //
$str=str_replace(")","",$str); //
$str=str_replace("&","",$str); //
$str=str_replace("[","",$str); //
$str=str_replace("]","",$str); //
$str=str_replace("+","",$str); //
$str=str_replace(" ","-",$str); // 空格处理
return $str;
}
//dump($_POST);
$num=$_POST["numbers"];
for($i=1;$i<=$num;$i++){
$postid="postid".$i;
$translation="translation".$i;
$id=strtolower(replace($_POST[$postid]));
$value=strtolower(replace($_POST[$translation]));
$mysql_server_name="localhost"; //数据库服务器名称
$mysql_username=""; // 连接数据库用户名
$mysql_password=""; // 连接数据库密码
$mysql_database=""; // 数据库的名字
// 连接到数据库
$conn=mysql_connect($mysql_server_name, $mysql_username,$mysql_password);
// sql语句
mysql_select_db($mysql_database,$conn);
$strsql ="update wp_posts set post_name= '".$value."' where id=".$id;
echo $strsql."<br>";
// 执行sql查询
if(mysql_query($strsql))
{
echo $id."->".$value."-> OK"."<br>";
}
else{
echo $id."->".$value."-> False"."<br>";
}
}
?>