
<p>
<input type="text" name="tel" id="tel" size="22" tabindex="4" />
<label for="tel">电话</label>
</p>
tabindex 这个属性按照从小到大排,为什么要这样?你可以自己试试….
2、如果评论表单是使用系统自带的,那么请用以下方法添加表单字段,如果不是,请略过
add_filter('comment_form_default_fields','comment_form_add_ewai')
function comment_form_add_ewai($fields) {
$label1 = __( '国家/地区' )
$label2 = __( 'Skype账号' )
$label3 = __( '电话' )
$label4 = __( '传真' )
$label5 = __( '地址' )
$value1 = isset($_POST['guojia']) ? $_POST['guojia'] : false
$value2 = isset($_POST['skype']) ? $_POST['skype'] : false
$value3 = isset($_POST['tel']) ? $_POST['tel'] : false
$value4 = isset($_POST['fax']) ? $_POST['fax'] : false
$value5 = isset($_POST['address']) ? $_POST['address'] : false
$fields['guojia'] =<<<HTML
<p>
<label for="guojia">{$label1}</label>
<input id="guojia" name="guojia" type="text" value="{$value1}" size="30" />
</p>
HTML
return $fields
}
3、 接收表单字段并写入数据库
在主题目录的 functions.php添加以下代码
add_action('wp_insert_comment','wp_insert_tel',10,2)
function wp_insert_tel($comment_ID,$commmentdata) {
$tel = isset($_POST['tel']) ? $_POST['tel'] : false
//_tel 是存储在数据库里的字段名字,取出数据的就会用到
update_comment_meta($comment_ID,'_tel',$tel)
}
这两步就可以将数据写入数据库了,不信你试试看
add_action()参数中的10和2分别表示该函数执行的优先级是10(默认值,值越小优先级越高),该函数接受2个参数。
4、在后台显示额外字段
前面两步只是接收和写入到数据库,那么要怎么在后台评论列表中显示呢?将以下代码复制到主题目录的functions.php 中:
add_filter( 'manage_edit-comments_columns', 'my_comments_columns' )
add_action( 'manage_comments_custom_column', 'output_my_comments_columns', 10, 2 )
function my_comments_columns( $columns ){
$columns[ '_tel' ] = __( '电话' ) //电话是代表列的名字
return $columns
}
function output_my_comments_columns( $column_name, $comment_id ){
switch( $column_name ) {
case "_tel" :
echo get_comment_meta( $comment_id, '_tel', true )
break
}
如果要在前台的留言列表中调用,就用以下代码,_tel就是你在数据库中存储的字段名字
<?php
$tel = get_comment_meta($comment->comment_ID,'_tel',true)
if( !empty($tel)){
echo "电话".$tel
}
?>
5、 大功告成,看看后台的评论列表,是不是多了一列电话,那样的话就没错了。
6、如果要移除某一个自带的表单字段,可以使用以下代码
function tel_filtered($fields){
if(isset($fields['tel']))
unset($fields['tel'])
return $fields
}
add_filter('comment_form_default_fields', 'tel')
WordPress 多语言网站插件 – Polylang
插件中心搜索polylang并安装
创建语言
Polylang 有 50 种预定义的语言,在 设置 菜单里,找到 语言,从下拉菜单里选择想要添加的语言的名称,然后点击 添加语言。
如果你想要的语言没在列表里,或者你不想要默认的设置,你可以自己修改,每种语言都有 5 个字段。
全名:在网站上显示的语言的名称,比如:English,Français,简体中文,繁体中文。
区域设置:用在 WordPress 上的语言代码,必须填写跟 WordPress 区域设置一致的代码,不然主题翻译就不能正常工作。一般由两个小写字母,一个下划线,再加上两个大写字母组成。例如:en_US,fr_FR,zh_CN。不过也有一些区域设置只用两个或三个小写字符,比如:ar,el,ckb。
语言代码:这个代码会用在 URL 上,最好使用两个小写字母的 ISO 639-1 语言,比如:en,fr,cn ...
文字方向:一般的语言都是从左向右阅读,不过也会从右向左阅读的语言( 阿拉伯语,希伯来语 )。Polylang 会告诉主题使用 LTR 还是 RTL 样式。注意并不是所有主题都支持两种文字方向( 默认的 2011,2012 主题支持 )。
排序:在语言切换工具上显示的语言的顺序。
记得点击 添加语言 按钮,可劲儿添加,因为没有限制。Polylang 会自动为你下载语言文件。
Polylang 还会试着去下载默认的 2010,2011,2012 这些主题的语言文件,如果也没下成,可以使用上面的地址手工下载,然后放在 /wp-content/themes/your_theme/languages 目录下。
设置
默认语言:当有人第一次访问你网站首页的时候使用的默认的语言。
要是安装 Polylang 在已有的网站上,会出现红色字儿的提示:有些文章,页面,分类或标签还没有设置语言,你想把它们设置为默认的语言吗?你可以点击这个快速设置所有已有的文章,页面,分类,标签的语言。同样适用于自定义内容类型,自定义分类法。注意不会修改文章,页面,分类或者标签的 URL。
检测浏览器语言:勾选以后,如果有人第一次访问你的网站的首页,网站的语言会根据用户的浏览器的设置来设置。如果网站的语言里没有用户浏览器的语言,那么就会使用默认的语言。
URL 修改
重要的选择:
从内容设置语言:Polylang 尽可能不修改 URL,默认,只有需要的时候才添加语言信息到 URL 上(主要是规档),不需要就不会添加( 文章,页面,分类,标签 )。这样即便禁用了这个插件,大部分重要的链接也不会受影响。
语言代码:例如:/en/,当使用简洁链接时会添加到所有 URL 上。这样如果禁用了这个插件,每个 URL 都会遗失语言信息,也就是所有的 URL 链接都会被破坏。
其它控制 URL 的相关选项:
在简洁链接中保留 /language/:月度规档的 URL 就会是这样:http://www.yoursite.com/language/en/2011/11/
从简洁链接中移除 /language/:月度规档的 URL 会是这样:http://www.yoursite.com/en/2011/11/
为默认语言隐藏 URL 语言信息,这样只有默认的语言会隐藏语言信息,那么默认语言的月度规档的 URL 看起来是这样地:http://www.yoursite.com/2011/11/
重定向语言页面到首页:不使用静态首页的话,这个选项是没有用的。例如,首页 URL 看起来是这样:http://www.yoursite.com/en/
控制语言与翻译的更多选项:
媒体:翻译媒体的标题与描述。
同步:创建文章与页面的翻译时可以避免重复动作,比如设置分类与标签,特色图像,父页面等等。你可以选择到底用不用同步。如果网站上有自定义内容类型或者分类法的时候,你也可以选择使用语言与翻译。最后别忘了点 保存更改 按钮。
主题的国际化( i18n )与本地化( l10n )
这步很重要,不然你的主题在显示文章或页面的时候不会显示翻译。要跟主题的作者确认一下主题是不是国际化( 是否可翻译 )还有本地化( 已经翻译 )了你需要的语言。了解更多可以参考本站的《 WordPress 主题开发 》课程。
检查主题的 header.php 是否有类似的代码:
<html <?php language_attributes()?>>
有些浏览器或机器人会使用这行代码检查你的页面语言。
语言切换器
语言切换小工具( Widgets )
到小工具的管理页面,你可以找到语言切换器,它目前有五个选项:
显示语言名称
显示标示
强制链接到首页
隐藏当前语言
使用下拉菜单的形式显示
如果你取消了 “显示语言名称” 和 “显示标示” 这两个选项,小工具会显示语言名称。如果你勾选了 “使用下拉菜单的形式显示” ,就不会显示标示,无论你是否选择勾选了 “显示标示” 选项。
如果你勾选了“强制链接到首页”,小工具会一直把访问者带到相应的语言的首页上,不勾选,语言切换器会试着找到翻译页。( 没找到的话会回到首页上 )。
如果勾选了 “隐藏当前语言”,小工具就不会显示当前语言。
不管使用哪个选项,切换工具上的语言只有在至少有一个文章或页面使用了这个语言的时候才显示。
语言的标示图像可以在 wp_content/polylang 目录里找到,比如区域设置为 en_US,那么就会使用 en_US.png 这个图像。
导航菜单
你的主题必须支持自定义导航菜单,而且必须在 wp_nav_menu 函数里使用了一个主题区域。例如:
wp_nav_menu(array('theme_location' =>'primary'))可以
wp_nav_menu(array('menu' =>'nav menu'))不可以
你可以为每种语言创建菜单。然后到菜单选项卡里的语言设置页面为每种语言选择正确的菜单。
你可以添加一个语言切换器在菜单的结尾处。勾选 “在菜单结尾处显示语言切换器”。
如果你没勾选 “显示语言名称” 还有 “显示标示”,语言切换器会使用语言名称。
如果勾选了“强制链接到首页”,语言切换器会把访问者带到正确的语言的首页,不然它会去寻找翻译页面(没找到的话就会回到首页上)。
勾选 “隐藏当前语言”,语言切换器就不会显示当前语言。
最后记得点击 保存更改 按钮。
字符串翻译
Polylang 可以翻译用户定义的字符串,比如网站的标题,标语,小工具标题。你还可以为每种语言选择不同的语言格式和时间格式。插件或主题可能会添加其它的字符串到这个列表里。
名称:为了方便排序。
字符串:要翻译的字符串。
翻译:不同语言下每个字符串的翻译。
默认所有翻译的字符串都会保存在数据库里,有一个复选框允许你清理在数据库里的没有用的字符串。
翻译分类或标签
设置每个已有的分类与标签的语言非常重要,不然他们不会显示。设置语言,只需要在描述字段下面的下拉菜单里选择。
翻译文章或页面
设置每个已有的文章与页面的语言非常重要,不然他们不会显示。在文章或页面的编辑界面的右边栏上,你可以选择语言。
每种语言你都有三种选项:
不想翻译文章的话可以什么都不做。
如果翻译已经存在的话,在 文章 ID 字段里填上文章的 ID。
如果你想创建一个新的翻译,点击语言后面 添加 链接。如果翻译的分类和标签可用,会自动填到文章翻译里,父页面也是一样的。
同步元数据
Polylang 会同步文章或页面与翻译之间的一些元数据和选项,默认的同步元数据的选项是:
分类与标签
自定义字段
评论与 ping 状态
置顶文章与发布日期
文章格式
页面层级,页面模板,页面排序
特色图像
首先,下载WordPress英文版程序,地址为http://wordpress.org/,这里有很多人使用的方法是下载个中文版WordPress,然后安装个英文版的主题而达到前台英文后台中文的目的。这是可以的,但是因为毕竟很多插件都是英文的,还有很多主题对中文不兼容,所以建议还是下载WordPress英文版。然后下载中文语言包,地址为http://code.google.com/p/wpcn/downloads/list,下载后解压找到zh_CN.mo,把zh_CN.mo文件放到安装了WordPress的网站中wp-content\languages (没有的话自己新建这个文件夹)里。
利用插件实现任意切换的效果。首先下载admin in english博客插件,下载地址为http://wordpress.org/extend/plugins/admin-in-english/ ,下载后,解压,修改里面的admin-in-english.php文件代码,源代码如下
/*
Plugin Name: Admin in English
Plugin URI: http://wordpress.org/extend/plugins/admin-in-english/
Description: Lets you have your backend administration panel in English, even if the rest of your blog is translated into another language.
Version: 1.2.1
Author: Nikolay Bachiyski
Author URI: http://nikolay.bg/
Tags: translation, translations, i18n, admin, english, localization, backend
*/
function admin_in_english_add_hooks() {
add_filter( 'locale', 'admin_in_english_locale' )
}
add_action( 'plugins_loaded', 'admin_in_english_add_hooks' )
function admin_in_english_locale( $locale ) {
if ( admin_in_english_should_use_english() ) {
return 'en_US'//把en_US改为zh_CN
}
return $locale
}
function admin_in_english_should_use_english() {
// frontend AJAX calls are mistakend for admin calls, because the endpoint is wp-admin/admin-ajax.php
return admin_in_english_is_admin() &&!admin_in_english_is_frontend_ajax()
}
function admin_in_english_is_admin() {
return
is_admin() || admin_in_english_is_tiny_mce() || admin_in_english_is_login_page()
}
function admin_in_english_is_frontend_ajax() {
return defined( 'DOING_AJAX' ) &&DOING_AJAX &&false === strpos( wp_get_referer(), '/wp-admin/' )
}
function admin_in_english_is_tiny_mce() {
return false !== strpos( $_SERVER['REQUEST_URI'], '/wp-includes/js/tinymce/')
}
function admin_in_english_is_login_page() {
return false !== strpos( $_SERVER['REQUEST_URI'], '/wp-login.php' )
}
保存好,压缩成zip文件,在WordPress里上传添加这个插件,如下
启用admin in english插件,后台即可变成中文,前台还是照样不变,登录等字样也是英文,想后台还原为英文的话,只要禁用admin in english插件就行了,这样就大大方便了各位做英文站的童鞋了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)