WordPress教程:批量修改文章缩略名

最近由于原来的服务器问题,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>";
            }

}

?>

你可能感兴趣的:(WordPress教程,wordpress二次开发)