将WordPress文章别名设置为文章ID、英文、拼音完全教程

将WordPress文章别名设置为文章ID、英文、拼音完全教程,第1张

概述使用WordPress建站,有时候需要使用文章别名作为固定链接,但自动填充的是标题汉字,那有什么办法可以让其自动转化为字母或者数字呢?

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

使用 wordpress 建站,有时候需要使用文章别名作为固定链接,但自动填充的是标题汉字,那有什么办法可以让其自动转化为字母或者数字呢?使用 wordpress 的站长朋友肯定对文章别名不陌生,大多数时间我们是用不到这个功能的,但在国外很多站点的固定链接都是采用文章别名的。且有些插件和主题是必须要设置%postname% 这样的别名固定链接才能使用,而中文站点自动生成的文章别名直接是汉字,还需要我们手动修改,今天雅兮网就给大家带来将 wordpress 文章别名设置为文章 ID、英文、拼音完全教程。

文章 ID

1、新文章自动使用 ID 作为别名,将下面的代码添加到主题的 functions.PHP,新建的文章都会自动使用 ID 作为别名。

/**

  * wordpress新文章自动使用ID作为别名

  */

add_action( 'save_post','using_ID_as_slug',10,2 );

function using_ID_as_slug($post_ID,$post){

global $post_type;

if($post_type=='post'){ //只对文章生效

// 如果是文章的版本,不生效

if (wp_is_post_revision($post_ID))

return false;

// 取消挂载该函数,防止无限循环

remove_action('save_post','using_ID_as_slug' );

// 使用文章ID作为文章的别名

wp_update_post(array('ID' => $post_ID,'post_name' => $post_ID ));

// 重新挂载该函数

add_action('save_post','using_ID_as_slug' );

}

}

2、修改老文章别名为文章 ID,将下面的代码添加到主题的 functions.PHP。

/**

  * 修改wordpress旧文章别名为文章ID

  */

function Bing_post_name_ID(){

query_posts( 'posts_per_page=-1' );

while( have_posts() ){

the_post();

$post_ID = $GLOBALS['post']->ID;

wp_update_post( array(

'ID' => $post_ID,

'post_name' => $post_ID

) );

}

wp_reset_query();

}

if( $_GET['post_name_ID'] == 'yes' ) add_action( 'init','Bing_post_name_ID' );

放置好代码后,访问一下下边的网站,访问前注意一定要备份数据,以免出错。http://yoursite.com?post_name_ID=yes 文章多的话网页加载会比较慢,因为正在一篇文章一篇文章的修改别名,要耐心等到网页完全加载好才可以。加载好后,删除之前添加的代码,修改完成,所有文章的别名都会变成自身的 ID。

标题英文

本方法可以将文章别名设置为文章标题的英文,原理是通过百度翻译和微软翻译自动生成文章英文别名。

// 自动生成英文别名 - 百度版

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 ( emptyempty( $wp_http_get->errors ) ) {

if ( ! emptyempty( $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 );

// 自动生成英文别名 - 微软版

function bymt_slug_auto_translate( $Title ) {

$wp_http_get = wp_safe_remote_get( 'http://API.microsofttranslator.com/v2/AJAX.svc/TranslateArray2?appID=%22TKT68kjRgkUbVtikst6Vo0Hxnb6g2f0K3tUMyn1gZ7nc*%22&from="zh"&to="en"&options={}&texts=["' . $Title . '"]' );

if ( emptyempty( $wp_http_get->errors ) ) {

if ( ! emptyempty( $wp_http_get['body'] ) ) {

preg_match('/"TranslatedText":"([^"]+)/i',$wp_http_get['body'],$trans_result);

$trans_Title = $trans_result[1];

return $trans_Title;

}

}

return;

}

笔者在实际使用中发现,使用此方法设置英文别名速度略慢,毕竟是是查询翻译结果,且翻译出来的别名也较长,不太推荐。

标题拼音

以下分享几个较好的插件,可以自动将别名设置为标题的拼音,

Pinyin SEO

这一款是国人开发的,在国内使用量也是较多的一款,可以自动把文章页,分类页,标签页的中文别名自动转换成为拼音格式,还可以把以前文章中的别名也转换过来,使用这款插件的效率是比较高的。

WP Slug Translate

这一款是国外开发的插件,可以把文章的 slug 转换为英文,如果有一些无法正常翻译,则就会使用文章的 ID 来作为别名,唯一不足的就是只能转换文章的 slug,其它的无法转换,相对 pinyin SEO,功能上要稍微差一些。

wp slug translate

这款插件貌似已经不再更新了,插件的功能相当的强大,可以把一切中文别名转化为英文或者是拼音,包括文章,分类,标签页等等,但需要主机开启 fsockopen 函数,否则则不能正常使用,如果没有主机权限的小伙伴就不要使用了。

auto Tag Slug

这一款插件主要是针对标签 tag 来自动转换的,将 tag 中文别名转换成为拼音或者是英文,可以进行批量转换,同样需要开启 fsockopen 函数,否则会出现错误提示:Function fsockopen() is not supported,please contact your webmaster.自我感觉安装这款插件的意义不大,如果一个个人博客站点,tag 是非常有限的,不会有太大,我们完全可以手动去转换。

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

总结

以上是内存溢出为你收集整理的将WordPress文章别名设置为文章ID、英文、拼音完全教程全部内容,希望文章能够帮你解决将WordPress文章别名设置为文章ID、英文、拼音完全教程所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存