如何在自定义分类管理面板中修改默认文本?

时间:2012-11-08 作者:user1706680

我想在我的自定义分类管理面板中做一个小小的更改:将标签“Description”重命名为“Title”。

2 个回复
SO网友:brasofilo

正在检查文件/wp-admin/edit-tags.php, 我们看到它正在使用函数_ex() 转换字符串的步骤Description.

下列的_ex 路径,我们发现它最终使用了过滤器gettext_with_context 翻译文本。因此,有可能钩住它并修改所需的字符串。

以下代码是@toscho的简化版本Retranslate plugin. 请检查原始代码,以获得更通用的代码。

作为插件使用,或者只需将代码复制到主题的functions.php 文件<在这个例子中,我们有一个额外的上下文和替换
要解决OP问题,请从两个数组中删除第二个数组项

中的配置值$params_71992:

  • context 如中所示/wp-admin/edit-tags.php
  • replacements, 原始和所需翻译的字符串taxonomy, 分类名称,category, post_tagscustom-taxonomy
<?php
/*
Plugin Name:    Translate Taxonomy Admin Strings
Plugin URI:     https://wordpress.stackexchange.com/q/71992/12615
Description:    Translate specific strings in admin screens Edit Tag
Version:        0.1
Author:         Rodolfo Buaiz
License:        GPL v2
*/


/** 
    Configuration 
    @params_71992[\'context\']        as defined in /wp-admin/edit-tags.php
    @params_71992[\'replacements\']   original text and translation
    @params_71992[\'taxonomy\']       name of the taxonomy (category, post_tag, custom_taxonomy)
 */
$params_71992 = array (
        \'context\'       => array (
                \'Taxonomy Description\'
            ,   \'Taxonomy Name\'
        )
    ,   \'replacements\'  => array ( 
                \'Description\'   => \'Title\'
            ,   \'Name\'          => \'The Name\'
        )
    ,   \'taxonomy\'      => \'category\'
);

// Run only in Edit Tags screens
add_action( \'admin_head-edit-tags.php\', \'wpse_71992_register_filter\' );

function wpse_71992_register_filter() 
{
    add_filter( \'gettext_with_context\', \'wpse_71992_translate\', 10, 4 );
}

function wpse_71992_translate( $translated, $original, $context, $domain ) 
{
    global $params_71992;

    // If not our taxonomy, exit early
    if( $params_71992[\'taxonomy\'] !== $_GET[\'taxonomy\'] )
        return $translated;

    // Text is not from WordPress, exit early
    if ( \'default\' !== $domain ) 
        return $translated;

    // Check desired contexts
    if( !in_array( $context, $params_71992[\'context\'] ) )
        return $translated;

    // Finally replace
    return strtr( $original, $params_71992[\'replacements\'] );
}

SO网友:totels
function my_gettext_with_context($translated, $text, $context, $domain) {
    if (is_admin() AND $text == "Description" AND $context == "Taxonomy Description") {
        return __("Title");
    }

    return $translated;
}
add_filter(\'gettext_with_context\', \'my_gettext_with_context\', 20, 3);
结束

相关推荐

hooks & filters and variables

我是updating the codex page example for action hooks, 在游戏中完成一些可重用的功能(最初是针对这里的一些Q@WA)。但后来我遇到了一个以前没有意识到的问题:在挂接到一个函数以修改变量的输出后,我再也无法决定是要回显输出还是只返回它。The Problem: 我可以修改传递给do_action 用回调函数钩住。使用变量修改/添加的所有内容仅在回调函数中可用,但在do_action 在原始函数内部调用。很高兴:我将其修改为一个工作示例,因此您可以将其复制/粘贴