Wenprise Pinyin Slug 插件——自动转换 WordPress URL 中的中文文章别名、分类项目别名、图片文件名称为汉语拼音或英文翻译

发布于:
更新时间:2019-11-12

本站提供 WordPress主题定制开发服务

本站长期承接 WordPress主题、插件、基于 WooCommerce 的商店商城开发业务。 我们有 10 年WordPress开发经验,如果你想 用WordPress开发网站, 请联系微信: iwillhappy1314,或邮箱: amos@wpcio.com 咨询。

84 thoughts on “Wenprise Pinyin Slug 插件——自动转换 WordPress URL 中的中文文章别名、分类项目别名、图片文件名称为汉语拼音或英文翻译

  1. 不错的东西,国人的东西还是国人了解,比老外的那个 so pinyin 好用不少!感谢刀刀。

    1. 插件只对没有别名的文章(新发表或者手动删除现有别名)起作用,已有别名的文章保持原样。

      1. 对的。 对“已有别名”的文章和分类,有办法批量转换吗。 只对新的有效。

        1. 好的,我测试一下,如果可以重现问题,修复后会发布新版本,后台更新一下即可。

  2. 请问如何禁用上传时文件名转换的功能呢,这与我的另一个插件冲突了

  3. 好用的插件,图片上传也能够自动转换slug。
    不过,我使用该插件遇到了一个情况,就是contributor角色登陆后台的时候也能看到Wenprise Pinyin Slug插件的settings页面?

  4. 安装启用后出现以下错误:

    “您的站点遇到了致命错误,请查看您的站点的管理电子邮箱来获得指引。

    了解更多在WordPress中调试的信息。”

    WordPress: 5.3.2版本
    PHP: PHP 7.2 (ea-php72)

  5. 还是同样的错误。试一下WP_DEBUG设置为true, 显示以下额外信息:
    Fatal error: require_once(): Failed opening required ‘/wp-content/plugins/wpforms-lite/includes/providers/class-constant-contact..php’ in /wp-content/plugins/wpforms-lite/includes/class-providers.php on line 55
    您的站点遇到了致命错误,请查看您的站点的管理电子邮箱来获得指引。
    我认为它与wp_forms无关吧?

    1. 看了一下,可能真是 wp-forms 的 bug,下面是 wp-forms 插件中,报错的相关代码。

      foreach ( $providers as $provider ) {
          $provider = sanitize_file_name( $provider );
          require_once WPFORMS_PLUGIN_DIR . 'includes/providers/class-' . $provider . '.php';
      }

      sanitize_file_name 函数输出的结果后面已经带一个点了,require_once那一行,最后的「.php」又带了一个点,这就导致了报错中出现的「class-constant-contact..php」,去掉多余的这个点,两个插件都可以正常开启。

      在没有启用Wenprise pinyin slug 之前,这个文件貌似是不加载的,单独启用 wp forms 可以正常启用。至于为什么启用了 Wenprise pinyin slug 插件会导致 wp forms 加载这个文件。需要进一步调查。

      1. 是的,确实是去掉多余的这个点,两个插件都可以正常开启。不过当没有更改wp forms,只禁用Wenprise pinyin slug时,wp forms 可以正常输出「class-constant-contact.php」,没有多余的这个点。只有启用Wenprise pinyin slug之后才会出现这个多余的点。此外如果更改wp forms去掉那个点之后禁用Wenprise pinyin slug,同样导致wp forms报错,找不到「class-constant-contactphp」文件。

        1. 这样说的话,可能确实我插件的问题,有修改 sanitize_file_name 函数的输出,稍后我来测试一下。

    1. 以前的文章批量转换会导致原来的链接访问不了,导致权重丢失。所以此功能不会添加。

  6. 新版本翻译不生效了
    1.4.13版本
    PHP 7.3
    WordPress 5.4
    使用百度翻译,一直都在用的。现在翻译直接是拼音的前几个(全拼)或首字母,以前能翻译成英文,现在无法翻译了。

    1. 可以重新保存一下插件设置试试,如果还不可以,我测试一下,会在下个版本中解决。

      1. 1、禁用/启用插件
        2、首字母/全拼并分别保存更改
        分别测试都不是翻译而是标题变成首字母或标题前几个字的拼音。
        反复确认了,求大神尽快更新

          1. 最新版本是 1.5.0,可以从后台直接更新,如果更新后翻译还是不能用,上班时间加我 QQ,帮你排查一下。

          2. 确定是1.5.0版本。选择百度翻译,生成拼音首字母(为什么要有这种没有识别意义的选项呢)。

          3. 已经在QQ上反馈了,再描述一下问题:
            经过反复测试百度翻译是生效的,但是跟设置的别名字符长度有关
            ①比如标题有100个字符(就是比如说),设置的是20个字符别名长度,那此时就不会翻译而是直接显示标题的的各个首字母,也就是我们认为翻译没生效;
            ②比如标题是19个字符(就是比如说),设置的是20个字符别名长度,那此时百度翻译就会自动翻译成因文,也就是我们认为翻译生效了。
            不管是形式上有没有翻译成功,这两种模式下,我确认了下百度翻译的后台都是记录了翻译的。
            ———–
            但是往前推2个版本,我默认设置的是15个字符,不管标题多长,都会调用百度翻译的,可能翻译不全但是标题规范,这是我或多数“小白”们想要的功能。
            求大神解决这个需求。

          4. 发布了新版本,请更新测试。

            翻译模式下,别名长度不宜设置过短,会导致达到别名程度限制后的最后一个单词被舍去而出现别名重复的情况。

          5. 升级到1.5.1版本完美解决问题。
            感谢大神无私奉献和神速处理问题。

  7. 很不错的插件,希望可以添加一个功能:

    单独为文件名添加一个时间戳或一段随机码,避免文件链接被别人猜测(付费资源站需要),并且减少因文件同名带来的过多资源消耗(如果用户上传了100个名字都为“中文”的图片,WP会检索所有这个名字的附件,然后去加数字尾巴,这个过程是很耗资源的,当然,这个例子比较极端)

    或者可以考虑为相应的翻译函数添加钩子,让有需要的人可以通过钩子自定义

        1. 新版本已发布,参考以下代码。

          add_filter('wenprise_converted_slug', function ($slug, $name, $type)
          {
              return $slug . 99;
          }, 10, 3);

          $slug 是转换后的别名,$name 是转换前的,$type 是转换类型,可能的值有:post、term、file

          1. 刚才测试后发现,你的这个钩子只有在文件名包含中文才可以生效,对于文件名没有中文的,不生效。所以还是建议为文件名翻译的末尾添加一个新钩子,确保非中文文件名的文件也可以添加时间戳等,谢谢

          2. (✿◡‿◡)突然发现自己好傻,O(∩_∩)O哈哈~可以了,谢谢

  8. 插件不能识别数字,如何让他输入标题自动转换了,不然怕提交的时候URL不对。

  9. 这个不会自动翻译 Custom Post Type UI插件新增分类中的文章别名

  10. 怎么改角色权限呢?
    现在只是管理员有效,如果是投稿者、作者的权限,他们添加的标签名还是中文的。
    主管理员是有效的,想增加对其他角色也能使用。

    1. 设置文章标签的操作是在发布文章时进行的,编辑以下角色没有发布文章的权限,所以无法实现此插件的功能。这是 WordPress 默认的权限设置,本插件不会去改动这个设置,也不建议通过其他方法进行修改,修改后可能会出现安全问题。

  11. 老大,用着不错,感谢你的工具,但发现 ǚ转换成yu,比如情侣,转换后“qing-lyu”,应该是“qing-lv”吧?希望能更正,谢谢辛苦了。

    1. 此问题不影响插件功能,不会进行修订,如果一定需要更正,可以使用 wenprise_converted_slug Filter 进行替换,以达到你需要的效果。

  12. 谢谢老大的及时回复,就是不知是否影响百度收录,因为url被翻译成拼音后,比如qing-lyu在百度里不是对应“情侣”,而如果是“qing-lv”百度就知道,马上翻译成情侣了,如果能更正是否更加完美,谢谢老大指点用替换工具,我试试,谢谢了!

  13. 对了,老大wenprise_converted_slug Filter 这个插件哪里下载,百度找不到?谢谢

  14. 遇到一个问题,文章标题中带有字符例如“·”,URL中会被翻译成“-%c2%b7-”,能否去掉标题中的字符?

  15. 这个插件写的很好,我是来给你建议的,
    一刀说道:
    2018/08/20 08:10
    插件只对没有别名的文章(新发表或者手动删除现有别名)起作用,已有别名的文章保持原样。

    希望改一下,快速编辑的时候,手动将别名换成中文,保存,然后转换成英文,最好支持批量编辑保存,

    WP Slug Baidu Translate 这个插件就是这么做的,

  16. 老大,为什么转为拼音了如正确地址是:http://www.touxiangpai.com/gui-mie-zhi-ren.html,但百度收录的在首页显示www.touxiangpai.com/?p=10…,单击百度快照进入发现:百度和网页 http://www.touxiangpai.com/%3Fp%3D10280 的作者无关。地址又变了,不知和你的插件有关吗?谢谢

  17. 对了,老大,我发现转换后的拼音地址和转换前的地址都能有效访问,这样造成都被百度收录。能不能只保留转换后拼音的地址就好,避免没转换之前的也被收录,谢谢

    1. 这个问题不是本插件要解决的,你可能需要找一下是否有相关的 SEO 插件。

  18. 古腾堡编辑器模式下,新建文章时别名不显示,只有写好标题保存草稿或者发布时才自动生成别名。
    可否优化成写好标题回车或者点击正文时就自动生成别名,便于二次编辑别名。

  19. 你好,插件还在更新吗,已有的标签,点击编辑和快速编辑的时候,不会翻译,只有重新添加的标签才会翻译

    1. 这是插件的正常特性,为了SEO安全性,插件不会转化已发布的文章或分类slug, 只会转换新发布内容的slug。如需转换已发布内容的slug, 可以尝试把现有内容的slug删除后再保存,应该就会触发自动转换操作了。

      1. 标签是以id结构的,别名和id都能打开,几万文章,几万标签,删除了在添加不现实,不然几千文章都得改,其实可以加一个开关,是否开启已存在的标签转换。还有有些词不会转的吗,比如完美世界。

  20. 想要用百度翻译,填入了appid和密钥密钥效果,还是默认拼音

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

*