Products
GG网络技术分享 2025-03-18 16:12 3
为了能让同一篇文章能顺利切换各种语言,我曾经想过一套通过更改模板的方案,但后来在发现WPML这个强大的语言切换插件后,一切变得简单多了。
注意这里的语言切换是实打实的用其它语言写作,而不是通过访问如Google翻译后返回的即时翻译结果,搜索引擎是能搜到它并把它收录的。
下载安装WPML Multilingual CMS插件后一切开始。首先是要选择本地的语言,也就是默认语言。然后再选择在你网站上提供的其它语言。插件很体贴的是它会在最开始使用时提供一个设置向导,大家只需跟随向导一步一步下去就行了。
WordPress网站多语言化插件WPML
在前台用户界面中,插件提供一个下拉菜单进行WordPress网站多语言化插件WPML语言的切换。如果你的模板主题支持小工具(widget)功能,你可以在后台选择把它添加到小工具当中去。如果你想指定切换菜单的位置,如本站把其放在页面的顶部。你需要修改相应的模板文件,在理想位置中添加下面的调用代码:
至于切换按钮的样式则需要自行修改。以上几步算是完成的前台的操作了,因为你只需要添加切换语言菜单让访客看到即可。
接着我们需要在后台指定作为非默认语言的文章链接地址的结构。在后台插件的管理界面,点选右上角处的“进阶”,你会看到插件提供了三个链接构成让你选择。
默认的是第三个选择,大家随自己喜欢来选就好了。
第一种链接的结构需要你的空间支持mod_rewrite,至于第二种则需要你先指定好二级域名,比如http://en.saywp.com/或者http://fr.saywp.com/这样的。
而当你设定好并点击保存后,插件会自动检查你的空间是否能符合要求并给出相应提示。
当然我认为选第三个一定行,也最省事情。
接着大家就要开始撰写其它语言的文章了,插件在文章的管理页面提供了友好的设置界面:
如上面图示,在最末的两篇日志因为目前仅有中文一个版本,所以标题右边会有两个“+”号,分别对应我较早前设置好的“英语”和“法语”,它们各对应 一面小旗作为标识。点击对应的“+”号就能为该篇日志撰写相对应的语言版本。如果有日志已经有对应的语言版本,则会用一支笔的图标以表示。
需要说明的是,我们所设置的各种语言都是可以单独存在的,而不是必须在添加了默认语言的文章后才能添加,这个在新建文章时候插件会提供一个选择框让你选择,究竟这一篇文章是属于哪种语言的。
当我们完成了一篇文章的另外语种添加后,我们来看看效果是如何的。由于目前这篇文章在你们看到时候我应该还没有添加对应的英文和法语版本,所以当你们用鼠标指定网站右上角的语言栏时候,它并不显示下拉菜单。这里插件做得很好,没有其它语言的就不显示对应的选择按钮,免得大家乱按。因此,麻烦大家在网站首页或者点一下这篇例子文章,因为我已经添加了相对应的语言版本,大家可以通过切换按钮试试效果。
怎样,效果还好吧。这里大家都能看到这三篇文章都能留言的,它们不是即时翻译出来的。另外大家也可以看看它们各自的链接地址,这样会更清楚插件是怎样一回事。
总的来说,这个插件就是让你方便管理每篇文章的对应版本,无论是在后台的作者功能实施还是在前台让访客能方便的指定切换。除此外,插件还提供更多更 为强大的功能,比如CMS管理功能及其它。这些功能大家可以自行试试。但我觉得最称赞的是它能读取模板主题中已经提供的语言文档(.mo),并利用它实行 前台对应语言的主题文字内容切换。当然前提就是你在用的主题模板已经有国际化的其它语言,其效果可以看看本站。在你在切换语言的时候,你是否也注意到导航 栏还有其它文字的切换呢。
其它的我就不多说了,我知道很多人都很难坚持把博客写下去的,更不要说要多写一种两种语言了。但如果你也想弄些其它语言的文章,而又不想新开一个网站,这个插件能减轻你很多工作,让你专心写你的文章就行了;同时希望这篇简单的介绍文章能对你有所用处。
而对于我来说,这款插件的唯一欠缺之处在于,作者完全可以根据用户的IP地址,客户端语言等,判断出用户可能属于的地区,默认的给一个语言,这样可以做到更人性化,当然,这种判断并非绝对可行的,然而起码绝大多数外国朋友是认可英语的。
现在有很多网站是把WordPress作为一个CMS内容发布系统来用的,而CMS系统一般都需要有用户互动的功能。大家都不想用户直接访问WordPress的后台账户,而是让用户直接在前台注册和登录。目前市面上也有不少此类实现前台注册和登录的插件,其中Theme my login就是个比较靠谱的前台登录和注册插件。不过本文所要介绍的是如何免插件实现前台注册功能。以下是具体方法:
1、首先,我们需要以page.php页面为基础建立一个名为register.php新模板文件。可以直接另存page.php页面并将页面编码设为UTF8即可,并在页面顶部插入以下代码:
2、在register.php中的上述代码的下面插入以下注册表单处理代码:
/*
添加注册表单处理
代码来源: www.wpzxbj.com/jiaocheng/1789.html
*/
<?php
if( !emptyempty($_POST['wpzhinan_reg']) ) {
$error = '';
$sanitized_user_login = sanitize_user( $_POST['user_login'] );
$user_email = apply_filters( 'user_registration_email', $_POST['user_email'] );
// Check the username
if ( $sanitized_user_login == '' ) {
$error .= '错误:请输入用户名。
\';
} elseif ( ! validate_username( $user_login ) ) {
$error .= \'错误:此用户名包含无效字符,请输入有效的用户名
。\';
$sanitized_user_login = \'\';
} elseif ( username_exists( $sanitized_user_login ) ) {
$error .= \'错误:该用户名已被注册,请再选择一个。
\';
}
// Check the e-mail address
if ( $user_email == \'\' ) {
$error .= \'错误:请填写电子邮件地址。
\';
} elseif ( ! is_email( $user_email ) ) {
$error .= \'错误:电子邮件地址不正确。!
\';
$user_email = \'\';
} elseif ( email_exists( $user_email ) ) {
$error .= \'错误:该电子邮件地址已经被注册,请换一个。
\';
}
// Check the password
if(strlen($_POST[\'user_pass\']) < 6)
$error .= '错误:密码长度至少6位!
\';
elseif($_POST[\'user_pass\'] != $_POST[\'user_pass2\'])
$error .= \'错误:两次输入的密码必须一致!
\';
if($error == \'\') {
$user_id = wp_create_user( $sanitized_user_login, $_POST[\'user_pass\'], $user_email );
if ( ! $user_id ) {
$error .= sprintf( \'错误:无法完成您的注册请求... 请联系管理员!
\', get_option( \'admin_email\' ) );
}
else if (!is_user_logged_in()) {
$user = get_userdatabylogin($sanitized_user_login);
$user_id = $user->ID;
// 自动登录
wp_set_current_user($user_id, $user_login);
wp_set_auth_cookie($user_id);
do_action(\'wp_login\', $user_login);
}
}
}
?>
3、在register.php文件中查找以下代码:
并在上述找到的代码下面插入以下注册表单代码:
/*
添加注册表单
代码来源: www.wpzxbj.com/jiaocheng/1789.html
*/
<?php if(!emptyempty($error)) {
echo '
\'.$error.\'
\';}
if (!is_user_logged_in()) { ?>
<?php
} else {
echo '
您已注册成功,并已登录!
\';}
?>
4、到网站后台创建并发布一个名为“登陆”的空白页面,需选择页面模板为“注册页面”,这个模板页面就是用上面代码所创建的。
至此,一个完整功能的前台注册页面就已经创建好了。至于登陆页面的创建方法与此类似,不过要简单的多了,本站原先已有过类似登录框的介绍,有需要的同学可以用网站搜索框搜索看看,就不在本文展开说明了。希望本文对你有所帮助!
Demand feedback