WordPress 文章别名增加手动点击百度翻译

WordPress 文章别名增加手动点击百度翻译,第1张

概述对于一个合格的站长,一般很难接受WordPress发布的文章别名出现中文,很少有主题函数里加入了这个功能,并且文章别名默认是中文的,这样不利于收录。

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。内存溢出小编现在分享给大家,也给大家做个参考。

对于一个合格的站长,一般很难接受 wordpress 发布的文章别名出现中文,很少有主题函数里加入了这个功能,并且文章别名默认是中文的,这样不利于收录。很多站长应用的百度翻译接口把文章别名自动翻译为英文,可以说已经非常的技能化了,不过如果你的文章标题很长的话,别名翻译后也是非常长的不是太美观,有一部分站长 wordpress 文章的固定链接直接用文章 ID,喜欢有意思一点的就会使用文章名称,当然也有通过 wordpress 文章别名来手动指定名称,而用传统的拼音或者简写的话有感觉不够有格调,而想要使用英文呢又没学好,那怎么办呢?今天我们分享两种自动翻译文章别名的方法。


方法一

将代码加到主题 functions.PHP 即可:

function bymt_slug_auto_translate( $Title )

{

$wp_http_get = wp_safe_remote_get( 'http://fanyi.baIDu.com/v2transAPI?from=zh&to=en&transtype=trans&query=' . $Title );

if ( empty( $wp_http_get->errors ) )

{

if ( ! empty( $wp_http_get['body'] ) )

{

$trans_result = Json_decode( $wp_http_get['body'],true );

$trans_Title = $trans_result['trans_result']['data'][0]['dst'];

return $trans_Title;

}

}

return;

} add_filter( 'sanitize_Title','bymt_slug_auto_translate',1 );

上面代码原理就是通过百度翻译的接口,自动翻译你文章名作为别名,不过看着如果文章名长的话,别名也很长啊。

方法二

这个和方法才是今天的主题“wordpress 文章别名增加手动点击百度翻译”,其实就是在原来自动翻译的基础上增加手动选择是否翻译别名,我们知道 wordpress 有各种针对文章别名的翻译插件,也有相关的教程,不过实现的原理比较尴尬,是通过 wordpress 动作钩子在 wordpress 发布或者更新文章的时候才能执行翻译,不能在文章第一次就先翻译出来,并且如果第一次就推送了熊掌号,若翻译不准确还需要修改就会出现重复链接页面显得非常不尽人意了。

所以今天提供的方法就是利用 Js 方式开发,配合百度翻译的接口,当你填写好文章的标题,单击文章别名后的翻译即可,如果翻译不尽人意还可以手动二次修改,保存发布一气呵成,堪称完美。话不多说,直接上代码:

// wordpress 文章别名增加手动点击百度翻译

add_action( 'admin_head-post.PHP','fanly_post_name_to_slug');

add_action( 'admin_head-post-new.PHP','fanly_post_name_to_slug');

function fanly_post_name_to_slug() {

echo "<script type='text/JavaScript' src='".get_stylesheet_directory_uri()."/Js/md5.Js'></script>";

echo "<script>

jquery(document).ready(function(){jquery('#post_name').after('<span ID="fanyi" "cursor:pointer;Font-size:12px;Font-weight:normal;padding-left:10px">点击翻译</span>');});

jquery(function($){

$(document).on('click','#fanyi',function(){

var appID = 'APP ID';//修改为百度翻译 APP ID

var key = '密钥';//修改为百度翻译密钥

var salt = (new Date).getTime();

var query = $('#Title').val();

var sign = MD5(appID + query + salt +key);

$.AJAX({

url: 'https://fanyi-API.baIDu.com/API/trans/vip/translate',

type: 'get',

dataType: 'Jsonp',

data: { q: query,appID: appID,salt: salt,from: 'zh',to: 'en',sign: sign },

success: function (data) {

$('#post_name').val(data.trans_result[0]['dst']);

console.log(data.trans_result[0]['dst']);

}

});

});

});

</script>";

}

由于 Js 代码需要使用到 MD5,所以还需要载入一个 MD5 的 Js 文件,然后放在当前主题目录中的 Js 目录,并且以 md5.Js 命名,md5.Js 文件内容:

var MD5=function(string){function Rotateleft(lValue,iShiftBits){return(lValue<<iShiftBits)|(lValue>>>(32-iShiftBits))}function AddUnsigned(lX,lY){var lX4,lY4,lX8,lY8,lResult;lX8=(lX&2147483648);lY8=(lY&2147483648);lX4=(lX&1073741824);lY4=(lY&1073741824);lResult=(lX&1073741823)+(lY&1073741823);if(lX4&lY4){return(lResult^2147483648^lX8^lY8)}if(lX4|lY4){if(lResult&1073741824){return(lResult^3221225472^lX8^lY8)}else{return(lResult^1073741824^lX8^lY8)}}else{return(lResult^lX8^lY8)}}function F(x,y,z){return(x&y)|((~x)&z)}function G(x,z){return(x&z)|(y&(~z))}function H(x,z){return(x^y^z)}function I(x,z){return(y^(x|(~z)))}function FF(a,b,c,d,x,s,ac){a=AddUnsigned(a,AddUnsigned(AddUnsigned(F(b,d),x),ac));return AddUnsigned(Rotateleft(a,s),b)}function GG(a,AddUnsigned(AddUnsigned(G(b,b)}function HH(a,AddUnsigned(AddUnsigned(H(b,b)}function II(a,AddUnsigned(AddUnsigned(I(b,b)}function ConvertToWordArray(string){var lWordCount;var lMessageLength=string.length;var lNumberOfWords_temp1=lMessageLength+8;var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1%64))/64;var lNumberOfWords=(lNumberOfWords_temp2+1)*16;var lWordArray=Array(lNumberOfWords-1);var lByteposition=0;var lByteCount=0;while(lByteCount<lMessageLength){lWordCount=(lByteCount-(lByteCount%4))/4;lByteposition=(lByteCount%4)*8;lWordArray[lWordCount]=(lWordArray[lWordCount]|(string.charCodeAt(lByteCount)<<lByteposition));lByteCount++}lWordCount=(lByteCount-(lByteCount%4))/4;lByteposition=(lByteCount%4)*8;lWordArray[lWordCount]=lWordArray[lWordCount]|(128<<lByteposition);lWordArray[lNumberOfWords-2]=lMessageLength<<3;lWordArray[lNumberOfWords-1]=lMessageLength>>>29;return lWordArray}function WordToHex(lValue){var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;for(lCount=0;lCount<=3;lCount++){lByte=(lValue>>>(lCount*8))&255;WordToHexValue_temp="0"+lByte.toString(16);WordToHexValue=WordToHexValue+WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2)}return WordToHexValue}function Utf8Encode(string){string=string.replace(/rn/g,"n");var utftext="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utftext+=String.fromCharCode(c)}else{if((c>127)&&(c<2048)){utftext+=String.fromCharCode((c>>6)|192);utftext+=String.fromCharCode((c&63)|128)}else{utftext+=String.fromCharCode((c>>12)|224);utftext+=String.fromCharCode(((c>>6)&63)|128);utftext+=String.fromCharCode((c&63)|128)}}}return utftext}var x=Array();var k,AA,BB,CC,DD,a,d;var S11=7,S12=12,S13=17,S14=22;var S21=5,S22=9,S23=14,S24=20;var S31=4,S32=11,S33=16,S34=23;var S41=6,S42=10,S43=15,S44=21;string=Utf8Encode(string);x=ConvertToWordArray(string);a=1732584193;b=4023233417;c=2562383102;d=271733878;for(k=0;k<x.length;k+=16){AA=a;BB=b;CC=c;DD=d;a=FF(a,x[k+0],S11,3614090360);d=FF(d,x[k+1],S12,3905402710);c=FF(c,x[k+2],S13,606105819);b=FF(b,x[k+3],S14,3250441966);a=FF(a,x[k+4],4118548399);d=FF(d,x[k+5],1200080426);c=FF(c,x[k+6],2821735955);b=FF(b,x[k+7],4249261313);a=FF(a,x[k+8],1770035416);d=FF(d,x[k+9],2336552879);c=FF(c,x[k+10],4294925233);b=FF(b,x[k+11],2304563134);a=FF(a,x[k+12],1804603682);d=FF(d,x[k+13],4254626195);c=FF(c,x[k+14],2792965006);b=FF(b,x[k+15],1236535329);a=GG(a,S21,4129170786);d=GG(d,S22,3225465664);c=GG(c,S23,643717713);b=GG(b,S24,3921069994);a=GG(a,3593408605);d=GG(d,38016083);c=GG(c,3634488961);b=GG(b,3889429448);a=GG(a,568446438);d=GG(d,3275163606);c=GG(c,4107603335);b=GG(b,1163531501);a=GG(a,2850285829);d=GG(d,4243563512);c=GG(c,1735328473);b=GG(b,2368359562);a=HH(a,S31,4294588738);d=HH(d,S32,2272392833);c=HH(c,S33,1839030562);b=HH(b,S34,4259657740);a=HH(a,2763975236);d=HH(d,1272893353);c=HH(c,4139469664);b=HH(b,3200236656);a=HH(a,681279174);d=HH(d,3936430074);c=HH(c,3572445317);b=HH(b,76029189);a=HH(a,3654602809);d=HH(d,3873151461);c=HH(c,530742520);b=HH(b,3299628645);a=II(a,S41,4096336452);d=II(d,S42,1126891415);c=II(c,S43,2878612391);b=II(b,S44,4237533241);a=II(a,1700485571);d=II(d,2399980690);c=II(c,4293915773);b=II(b,2240044497);

a=II(a,1873313359);d=II(d,4264355552);c=II(c,2734768916);b=II(b,1309151649);a=II(a,4149444226);d=II(d,3174756917);c=II(c,718787259);b=II(b,3951481745);a=AddUnsigned(a,AA);b=AddUnsigned(b,BB);c=AddUnsigned(c,CC);d=AddUnsigned(d,DD)}var temp=WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);return temp.tolowerCase()};

上面的 wordpress 文章别名增加手动点击百度翻译,你可以直接复制保存一下。或者直接去百度翻译接口的文档页面:http://API.fanyi.baIDu.com/API/trans/product/APIdoc 下载 Js 版,然后将里面的文件直接拷贝出来即可。当然啦,你还需要在百度翻译开放平台:http://API.fanyi.baIDu.com 申请 API 接口。使用方法就不赘述了自行查阅资料,根据提示替换代码中的信息即可。

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的WordPress 文章别名增加手动点击百度翻译全部内容,希望文章能够帮你解决WordPress 文章别名增加手动点击百度翻译所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/1008192.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存