美工学习 发表于 2023-12-1 21:44:53

WordPress分页插件WP-PageNavi和翻译插件WPML的兼容性问题

首先来介绍一下WP-PageNavi,这是一款免费的文章分页插件,它轻便小巧,大量的WordPress网站都在用它。如果你用过一款统计和显示页面访问量的插件WP-PostViews的话,这2款很像的程序;





WP-PageNavi能让你的列表页面的分页按钮变成这样:

比默认主题的分页按钮强多了。但这款插件和WPML-最强大的翻译插件,一起用的时候,WP-PageNavi自带的翻译失效了。
尽管在WPML的字段翻译列表里面可以顺利扫描到WP-PageNavi的翻译文件(比如wp-pagenavi-zh_CN.po),但在页面上显示的仍然是英文。其实是作者的一个小疏忽,没有给自己的代码套gettext函数。只要进入插件目录,找到core.php,修改一行代码即搞定。
找到:if ( !empty( $options['pages_text'] ) ) {
        $pages_text = str_replace(
                array( "%CURRENT_PAGE%", "%TOTAL_PAGES%" ),
                array( number_format_i18n( $paged ), number_format_i18n( $total_pages ) ),
        $options['pages_text'] );
        $out .= "<span class='pages'>$pages_text</span>";
}修改里面的第五行,改成:if ( !empty( $options['pages_text'] ) ) {
        $pages_text = str_replace(
                array( "%CURRENT_PAGE%", "%TOTAL_PAGES%" ),
                array( number_format_i18n( $paged ), number_format_i18n( $total_pages ) ),
        __($options['pages_text']) );
        $out .= "<span class='pages'>$pages_text</span>";
}保存上传覆盖文件,翻译就成功加载了:开发插件或主题的时候,要养成一个好习惯,给文本输出都套上gettext函数,以便在不同语言环境下你的插件/主题都能显示正常的语言。
页: [1]
查看完整版本: WordPress分页插件WP-PageNavi和翻译插件WPML的兼容性问题