snthr
  • 0
Новичок

Можно ли переименовать формат сообщения?

  • 0

Начиная с WP 3.1 стало возможным использовать форматы сообщений в стиле Tumblr. Я хочу использовать опцию «в стороне» в теме, но я хочу, чтобы у нее был другой заголовок в области администрирования WP.

Так, например, когда пользователь пишет сообщение, у него есть возможность сделать это сообщение, скажем, «Стандартным» или «Быстрым», а не «Стандартным» или «Отдельным».

Можно ли это сделать без модификации ядра? Было бы здорово, если бы это можно было легко сделать с помощью functions.php или чего-то подобного. Я живу надеждой…

Спасибо!

Share
  1. Я думаю, что это единственный способ на данный момент. Поместите это в свой 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');
    
    • 0
    • Это полностью переопределяет метки формата публикации. Чтобы исправить эту проверку, если $text упоминается $names так: if ($context == 'Post format' && in_array($text, array_keys($names)) )

      • 0
    • Лично я бы не стал добавлять дополнительную проверку — во-первых, список форматов сообщений очень короткий и не расширяемый, поэтому вам не нужно беспокоиться о другом тексте; во-вторых, str_replace() в любом случае не повлияет на текст, которого нет в массиве $names, поэтому дополнительная проверка является избыточной.

      • 0
    • Привет Майк, добро пожаловать в WP.SE. Этот сайт немного отличается от вашего обычного форума (см. тур ), так как ему нужны четкие ответы. Если у вас есть дополнительные вопросы или комментарии к ответам, пожалуйста, оставьте их там в качестве комментария (как только вы наберете достаточно репутации). Пожалуйста, загляните в справочный центр, чтобы узнать, как работает сайт в деталях. Спасибо за жесткий ответ. Повеселись!

      • 0
  2. Гораздо более надежный (и менее хакерский) способ сделать это будет следующим:

    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);
    
    • 0
  3. Форматы сообщений жестко закодированы в WordPress. Вы не можете изменить их, но, как указывает JohnnyPea, вы можете скрыть существующее имя с помощью нескольких трюков.

    Чип Беннетт рекомендует настроить собственную таксономию, если вам действительно нужно создать собственный набор форматов записей, и я решительно поддерживаю эту рекомендацию.

    Но подумайте об этом на секунду. Форматы сообщений предназначены для того, чтобы помочь вам стилизовать выходные данные вашего блога для читателя. Читателю все равно, как это называется, в сторону или вкратце, ему просто важно, как представлен контент поста. Если вы просто пытаетесь изменить метку формата сообщения на стороне администратора для себя, просто сверните свою собственную таксономию и используйте ее.

    • 0
  4. Правильным методом было бы зарегистрировать пользовательскую таксономию и вообще не использовать основные форматы сообщений.

    • 0
  5. Я настроил форматы сообщений и отобразил их на панели вкладок горизонтально вверху страницы редактора сообщений. Я настраиваю их имена примерно так. Это довольно сложный и хакерский процесс, но я вставил его в Gist, если вы хотите его проверить: https://gist.github.com/dcondrey/059dec0c5b01197c9f11.

    Окончательный результат выглядит примерно так:

    введите описание изображения здесь

    • 0
  6. Я не вижу ничего плохого в том, чтобы изменить название этих форматов сообщений в соответствии с потребностями вашей редакционной группы и процесса. Если только изменение имен не нарушит функциональность темы и не приведет к их правильному отображению. Идея этих форматов заключается в том, что тема может указать, какие из них поддерживаются, и только они будут перечислены в редакторе.

    Из того, что я могу сказать, метод @JohnyPea ничего не сломает на стороне темы. Мне любопытно, пробовал ли кто-нибудь метод @Aaron. Если да, то смогли ли вы без проблем переключать темы.

    В конечном счете, мы говорим о том, чтобы сделать их семантически более полезными для редакции, и настраиваемый тип сообщения, вероятно, будет излишним, если нас интересует только изменение имени/синоним.

    • 0

Оставить ответ

You must login to add an answer.