問題描述

自從 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。