问题描述

自从 WP 3.1 以来,可以使用 Tumblr-style post formats 。我想在主题中使用’aside’ 选项,但我希望它在 WP 管理区域中具有不同的标题。

所以,例如,当用户正在撰写帖子时,他们可以选择该帖子,比如’Standard’ 或’Quick’,而不是’Standard’ 或’Aside’ 。

是否可以这样做而不修改核心?如果它是通过 functions.php 等可以很容易地完成的,那将是巨大的。我生活在希望…

谢谢!

最佳解决方案

我认为这是现在唯一的办法。将它放在你的主题文件夹的 functions.php 或创建一个简单的插件:

function rename_post_formats( $safe_text ) {
    if ( $safe_text == 'Aside' )
        return 'Quick';

    return $safe_text;
}
add_filter( 'esc_html', 'rename_post_formats' );

//rename Aside in posts list table
function live_rename_formats() { 
    global $current_screen;

    if ( $current_screen->id == 'edit-post' ) { ?>
        <script type="text/javascript">
        jQuery('document').ready(function() {

            jQuery("span.post-state-format").each(function() { 
                if ( jQuery(this).text() == "Aside" )
                    jQuery(this).text("Quick");             
            });

        });      
        </script>
<?php }
}
add_action('admin_head', 'live_rename_formats');

次佳解决方案

一个更可靠 (更少的黑客) 的方法来做到这一点是:

function rename_post_formats($translation, $text, $context, $domain) {
    $names = array(
        'Audio'  => 'Podcast',
        'Status' => 'Tweet'
    );
    if ($context == 'Post format') {
        $translation = str_replace(array_keys($names), array_values($names), $text);
    }
    return $translation;
}
add_filter('gettext_with_context', 'rename_post_formats', 10, 4);

第三种解决方案

Post 格式是 hard-coded 到 WordPress 。你不能改变他们,但正如约翰尼皮埃尔指出,你可以用几个技巧隐藏现有的名字。

如果您真的需要创建自己的一组帖子格式,Chip Bennett 建议您设置自己的自定义分类法,我强烈建议您。

但要花一点时间思考这个问题。发布格式旨在帮助您为读者创建博客的输出。读者不在乎,如果它被称为 Aside 或 Quick,他们只是关心如何呈现的内容。如果您只是为了自己更改管理员的帖子格式标签,那么请滚动自己的自定义分类法并使用它。

第四种方案

正确的方法是注册自定义分类,而不是使用核心的 Post 格式。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。