Renaming profile sections

时间:2013-07-08 作者:Nick

想知道是否有人可以帮忙,我需要更改用户配置文件页面上各部分的名称(名称、联系信息标题)等

我知道如何通过函数插件更改字段,但无法确定节名称。

理想情况下,我更喜欢通过函数插件而不是编辑核心文件。

谢谢

1 个回复
SO网友:brasofilo

要澄清“plugin/functions.php”问题,请参阅:Where do I put the code snippets I found here or somewhere else on the web?

您可以使用以下修改版本toscho\'s Retranslate Plugin. 我改变了post_type 对于pagenow. 在最终数组中配置翻译。

<?php
/*
Plugin Name: Retranslate Profile Page
Description: Adds translations.
Version:     0.1b
Author:      Thomas Scholz
Author URI:  http://toscho.de
License:     GPL v2
*/
class Toscho_Retrans {
    // store the options
    protected $params;

    /**
     * Set up basic information
     * 
     * @param  array $options
     * @return void
     */
    public function __construct( array $options ) {
        $defaults = array (
            \'domain\'       => \'default\'
        ,   \'context\'      => \'backend\'
        ,   \'replacements\' => array()
        ,   \'pagenow\'      => array()
        );

        $this->params = array_merge( $defaults, $options );

        // When to add the filter
        $hook = \'backend\' == $this->params[\'context\'] 
            ? \'admin_head\' : \'template_redirect\';

        add_action( $hook, array ( $this, \'register_filter\' ) );
    }

    /**
     * Conatiner for add_filter()
     * @return void
     */
    public function register_filter() {
        add_filter( \'gettext\', array ( $this, \'translate\' ), 10, 3 );
    }

    /**
     * The real working code.
     * 
     * @param  string $translated
     * @param  string $original
     * @param  string $domain
     * @return string
     */
    public function translate( $translated, $original, $domain ) {
        // exit early
        if ( \'backend\' == $this->params[\'context\'] ) {
            global $pagenow;

            if ( ! empty ( $pagenow ) 
                && ! in_array( $pagenow, $this->params[\'pagenow\'] ) )
            {
                return $translated;
            }
        }

        if ( $this->params[\'domain\'] !== $domain ) {
            return $translated;
        }

        // Finally replace
        return strtr( $original, $this->params[\'replacements\'] );
    }
}

// Sample code
// Replace \'Name\' and \'Personal Options\' on the profile page
$Toscho_Retrans = new Toscho_Retrans(
    array (
        \'replacements\' => array ( 
            \'Name\' => \'The Name\'
        ,   \'Personal Options\' => \'The Options\'
        ,   \'Something Else\' => \'Lorem Ipsum\'
        )
    ,   \'pagenow\'    => array ( \'profile.php\', \'edit-user.php\' )
    )
);
另一种选择是使用jQuery:

add_action( \'admin_print_footer_scripts\', \'rename_profile_h3\' );

function rename_profile_h3()
{ 
    global $pagenow;
    if( !in_array( $pagenow, array(\'profile.php\', \'edit-user.php\') ) )
      return;
    ?>
<script>
jQuery(document).ready(function($){
    $("#your-profile").find("h3:contains(\'Name\')").text(\'The Name\');
    $("#your-profile").find("h3:contains(\'Personal Options\')").text(\'The Options\');
});
</script>
    <?php
}
这两个示例都在管理页面概要文件和用户编辑中运行。

结束

相关推荐

Client Profiles

正在寻找创建客户机数据库的最佳方法。插件能最好地实现以下功能吗?我的客户端数据库插件存储有关客户端的个人信息和统计信息,这些信息和统计信息将通过自定义字段和自定义表单收集,管理员创建客户端配置文件后,仪表板选项卡将打开列表区域(类似于用户选项卡)(仅限管理员)“添加新”功能(类似于仪表板的用户区域)。管理员可以将客户端分配给用户,分配给用户的客户端显示为用户元数据。分配给用户的客户端将在用户配置文件中可见,仪表板小部件显示为登录用户分配的客户端,并带有指向客户端配置文件页面的链接。插件是解决此问题的解决方