对于 WordPress 的固定链接来说,懒人喜欢直接用 postid,喜欢有意思一点的就会使用 postname,也就是通过 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\" style=\"cursor:pointer;font-size:12px;font-weight:normal;padding-left:10px\">点击翻译</span>');});jQuery(function($){$(document).on('click', '#fanyi', function(){var appid = 'APP ID';//修改为百度翻译 APP IDvar 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,y,z){return(x&z)|(y&(~z))}function H(x,y,z){return(x^y^z)}function I(x,y,z){return(y^(x|(~z)))}function FF(a,b,c,d,x,s,ac){a=AddUnsigned(a,AddUnsigned(AddUnsigned(F(b,c,d),x),ac));return AddUnsigned(RotateLeft(a,s),b)}function GG(a,b,c,d,x,s,ac){a=AddUnsigned(a,AddUnsigned(AddUnsigned(G(b,c,d),x),ac));return AddUnsigned(RotateLeft(a,s),b)}function HH(a,b,c,d,x,s,ac){a=AddUnsigned(a,AddUnsigned(AddUnsigned(H(b,c,d),x),ac));return AddUnsigned(RotateLeft(a,s),b)}function II(a,b,c,d,x,s,ac){a=AddUnsigned(a,AddUnsigned(AddUnsigned(I(b,c,d),x),ac));return AddUnsigned(RotateLeft(a,s),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(/\r\n/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,b,c,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,b,c,d,x[k+0],S11,3614090360);d=FF(d,a,b,c,x[k+1],S12,3905402710);c=FF(c,d,a,b,x[k+2],S13,606105819);b=FF(b,c,d,a,x[k+3],S14,3250441966);a=FF(a,b,c,d,x[k+4],S11,4118548399);d=FF(d,a,b,c,x[k+5],S12,1200080426);c=FF(c,d,a,b,x[k+6],S13,2821735955);b=FF(b,c,d,a,x[k+7],S14,4249261313);a=FF(a,b,c,d,x[k+8],S11,1770035416);d=FF(d,a,b,c,x[k+9],S12,2336552879);c=FF(c,d,a,b,x[k+10],S13,4294925233);b=FF(b,c,d,a,x[k+11],S14,2304563134);a=FF(a,b,c,d,x[k+12],S11,1804603682);d=FF(d,a,b,c,x[k+13],S12,4254626195);c=FF(c,d,a,b,x[k+14],S13,2792965006);b=FF(b,c,d,a,x[k+15],S14,1236535329);a=GG(a,b,c,d,x[k+1],S21,4129170786);d=GG(d,a,b,c,x[k+6],S22,3225465664);c=GG(c,d,a,b,x[k+11],S23,643717713);b=GG(b,c,d,a,x[k+0],S24,3921069994);a=GG(a,b,c,d,x[k+5],S21,3593408605);d=GG(d,a,b,c,x[k+10],S22,38016083);c=GG(c,d,a,b,x[k+15],S23,3634488961);b=GG(b,c,d,a,x[k+4],S24,3889429448);a=GG(a,b,c,d,x[k+9],S21,568446438);d=GG(d,a,b,c,x[k+14],S22,3275163606);c=GG(c,d,a,b,x[k+3],S23,4107603335);b=GG(b,c,d,a,x[k+8],S24,1163531501);a=GG(a,b,c,d,x[k+13],S21,2850285829);d=GG(d,a,b,c,x[k+2],S22,4243563512);c=GG(c,d,a,b,x[k+7],S23,1735328473);b=GG(b,c,d,a,x[k+12],S24,2368359562);a=HH(a,b,c,d,x[k+5],S31,4294588738);d=HH(d,a,b,c,x[k+8],S32,2272392833);c=HH(c,d,a,b,x[k+11],S33,1839030562);b=HH(b,c,d,a,x[k+14],S34,4259657740);a=HH(a,b,c,d,x[k+1],S31,2763975236);d=HH(d,a,b,c,x[k+4],S32,1272893353);c=HH(c,d,a,b,x[k+7],S33,4139469664);b=HH(b,c,d,a,x[k+10],S34,3200236656);a=HH(a,b,c,d,x[k+13],S31,681279174);d=HH(d,a,b,c,x[k+0],S32,3936430074);c=HH(c,d,a,b,x[k+3],S33,3572445317);b=HH(b,c,d,a,x[k+6],S34,76029189);a=HH(a,b,c,d,x[k+9],S31,3654602809);d=HH(d,a,b,c,x[k+12],S32,3873151461);c=HH(c,d,a,b,x[k+15],S33,530742520);b=HH(b,c,d,a,x[k+2],S34,3299628645);a=II(a,b,c,d,x[k+0],S41,4096336452);d=II(d,a,b,c,x[k+7],S42,1126891415);c=II(c,d,a,b,x[k+14],S43,2878612391);b=II(b,c,d,a,x[k+5],S44,4237533241);a=II(a,b,c,d,x[k+12],S41,1700485571);d=II(d,a,b,c,x[k+3],S42,2399980690);c=II(c,d,a,b,x[k+10],S43,4293915773);b=II(b,c,d,a,x[k+1],S44,2240044497);a=II(a,b,c,d,x[k+8],S41,1873313359);d=II(d,a,b,c,x[k+15],S42,4264355552);c=II(c,d,a,b,x[k+6],S43,2734768916);b=II(b,c,d,a,x[k+13],S44,1309151649);a=II(a,b,c,d,x[k+4],S41,4149444226);d=II(d,a,b,c,x[k+11],S42,3174756917);c=II(c,d,a,b,x[k+2],S43,718787259);b=II(b,c,d,a,x[k+9],S44,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()}; |
你可以直接复制保存一下。或者直接去百度翻译接口的文档页面:http://api.fanyi.baidu.com/api/trans/product/apidoc 下载 JS 版,然后将里面的文件直接拷贝出来即可。
当然啦,你还需要在百度翻译开放平台:http://api.fanyi.baidu.com 申请 API 接口。使用方法就不赘述了,根据提示替换代码中的信息即可。
黄飞鸿热灸馆加盟项目,整店输出模式,专业热灸加盟技术培训,一个专业做中医养生的连锁品牌。源自黄飞鸿的嫡孙继承了黄飞鸿先生的遗志,多年来一直坚定不移地致力于大健康产业,并创立了黄飞鸿热灸馆;主要业务服务有黄飞鸿热炙理疗,黄飞鸿热炙理疗馆加盟,黄飞鸿理疗馆,黄飞鸿热灸,黄飞鸿养生馆加盟,黄飞鸿养生馆加盟,黄飞鸿热灸馆,黄飞鸿热灸体验馆,黄飞鸿热灸馆加盟,黄飞鸿热灸理疗馆,黄飞鸿热灸膏
TokenPocket钱包支持数字资产存储。每天走势掌握,功能强大,在线管理数字货币,超多币种推送,多种交易方式,私钥用户自持且轻便易用的以太坊轻钱包。tp支持多资产类型,如:TokenPocket、ETH、QTUM、AE、BTM等大多数主流币种,让tp钱包更好地融入你的生活。
浙江丰安齿轮股份有限公司成立于1999年1月,是一家集开发、设计、制造、销售服务为一体的齿轮专业制造商,占地面积93亩,总资产3亿余元,主要设备400余台。公司于2017年1月在“新三板”挂牌,股票代码870508。公司以精湛的技术、过硬的品质、优良的服务来赢得客户满意,努力打造业界一流齿轮制造企业。
我公司系高新技术企业,专业从事空气净化的产品生产、工程服务及洁净技术的应用与研究,提供从空调处理设备、空调自动控制系统到洁净室系统全面服务,为各类工业用空气处理提供一揽子解决方案及交钥匙工程。 产品遍及全国几十个省市,并出口至巴基斯坦、伊朗等国家。我公司在化纤工艺空调领域精耕细作20余年,2001年进入医药、电子等行业的净化空调设备。 本公司拥有雄厚的技术力量和良好的售后服务,承接系统设计、技术咨询、产品制造、技术改造等项目。设备采用工业计算机、可编程序(PLC)控制器、数字直接控制器(DDC)等智能控制器,可实现节能显著的运行系统(节能策略有:新回风的焓值控制、二次回风、送风机的变频调速;非露点控制方案在过渡季节节能50%。在化纤纺丝行业采用的节能措施,同样可在医药行业的净化空调上使用);采用与国际惯例接轨的CAD设计和质量保证体系。
双友科技为客户提供直缝埋弧焊管生产线、直缝高频焊管生产线、螺旋埋弧焊管生产线、钢管内外防腐生产线,石油套管生产线,热处理生产线以及其他系列产品。同时公司致力于为高端铝业服务,为客户提供更为高效,节能,环保,安全的铸铝生产线及其相关设备。公司积极推进国际化发展战略,逐步实现品牌、市场、团队、技术、管理与国际化标准接轨。此外,公司与众多国际知名管材和铝材生产商建立了紧密的合作关系,在中东设立了海外分支机构。双友科技旨在将中国的高端制造带给世界。
南京三超新材料股份有限公司成立于1999年1月,注册资本9360万元,2017年4月21日,在深圳创业板成功挂牌上市。占地面积130亩,建筑面积约86,000平方米。是一家专业从事金刚石、立方氮化硼工具的研发、生产与销售的高新技术企业,现拥有金刚石砂轮和金刚石线两大类相互协同的产品系列,应用于硅、蓝宝石、石英、铁氧体、钕铁硼、陶瓷、玻璃、硬质合金等硬脆材料的精密切割、磨削与抛光。 公司自成立以来,始终坚持"以人为本、技术优先"的发展理念,先后引入多名外籍专家,并在日本成立了超硬材料工具的专业研发机构。经过多年研发,公司成为国内最早通过自主研发掌握金刚线制造的相关技术,成功实现产业化的企业之一,并且打破了国外企业的技术垄断,与新研发成功的硅片背面减薄砂轮、硅片倒角砂轮、PAD修整器等产品,为半导体及太阳能光伏行业提供了优质的金刚石工具,并凭借良好的品质与高性价比,赢得了众多实力用户认可,在国内形成了较高的行业影响力。