问题描述
自从 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。