Frage

Ich möchte die Standardeinstellung ändern "Auszüge sind optionale handgefertigte Zusammenfassungen Ihrer Inhalte, die in Ihrem Thema verwendet werden können. Erfahren Sie mehr über manuelle Auszüge." Helfen Sie den Text unterhalb des Auszugseingabebereichs zu etwas Sinnvollerem für meinen benutzerdefinierten Post -Typ.

Ich habe etwas Ähnliches mit dem Post -Titel gemacht, indem ich einen "Übersetzungsfilter" verwendet, aber wie würde ich das mit dem Postauszug machen?

Hier ist mein aktueller Code:
add_filter('gettext', 'custom_rewrites', 10, 4);
function custom_rewrites($translation, $text, $domain) {

    global $post;

    $translations = &get_translations_for_domain($domain);
    $translation_array = array();

    switch ($post->post_type) {
        case 'model':
            $translation_array = array(
                'Enter title here' => 'Enter model name here',
                'Excerpt' => "Byline",
                'Excerpts are optional hand-crafted summaries of your content that can be used in your theme.' => "Foobar"
            );
            break;
    }

    if (array_key_exists($text, $translation_array)) {
        return $translations->translate($translation_array[$text]);
    }

    return $translation;
}

Die dritte Übersetzung funktioniert nicht?

War es hilfreich?

Lösung

Diese Beschreibung wird von generiert von post_excerpt_meta_box() Funktion und wird nicht durch explizite Filter weitergegeben. Es wird jedoch durch translationsbezogene Übersetzungen wiederholt _e() Funktion und so durchgeht gettext Filter (welche aus Ihrer Frage Sie bereits vertraut sind).

Wenn ich es auf deinen CPT beschränkte, denke ich, dass der aktuelle Post -Typ in Admin in Global gehalten wird $post_type Variable können Sie überprüfen.

Andere Tipps

Späte Antwort

Nur Übersetzungsfilter

Es gibt Standardfilter für den Titel und den Inhalt, aber keine für das Auszugfenster. Sie haben also im Grunde die Optionen gekommen: Entfernen Sie das Standard -Meta -Box und fügen Sie eine neue (geändert) oder fügen Sie die Zeichenfolge über die gettext Filter.

Metabox

Sie kennen im Grunde das Konzept des Entfernens eines Metaboxs (wenn nicht, suchen Sie einfach auf dieser Website). Fügen Sie dann einfach eine neue Metabox hinzu, die genau gleich ist, aber mit einer leicht veränderten Benutzeroberfläche in Ihrem benutzerdefinierten Rückruf.

Hier ist das Original aus dem Kern als Referenz:

function post_excerpt_meta_box($post) {
?>
<label class="screen-reader-text" for="excerpt"><?php _e('Excerpt') ?></label><textarea rows="1" cols="40" name="excerpt" tabindex="6" id="excerpt"><?php echo $post->post_excerpt; // textarea_escaped ?></textarea>
<p><?php _e('Excerpts are optional hand-crafted summaries of your content that can be used in your theme. <a href="http://codex.wordpress.org/Excerpt" target="_blank">Learn more about manual excerpts.</a>'); ?></p>
<?php
}

GetText

Der Punkt dabei ist, dass dieser Filter für jede translatable Zeichenfolge in der Benutzeroberfläche (was viel ist) auslöst. Im folgenden Plugin werden Sie feststellen, wie Sie den Standard -Title -Platzhalter, den Standardinhalt und die Einbeziehung des Standard -Titels, der so spät wie möglich einhütten, um diese Zeichenfolge zu ändern - und dann im IM. Entfernen Sie den Filter, damit er nicht jeden späteren Filter verlangsamt.

<?php
/** Plugin Name: (#72418) "kaiser" Alter Post Type UI strings */

if ( ! class_exists( 'WPSE72418_alter_ptui_strings' ) )
{
    add_action( 'plugins_loaded', array( 'WPSE72418_alter_ptui_strings', 'init' ) );
class WPSE72418_alter_ptui_strings
{
    static protected $instance;

    public $post_type = 'post';

    public $to_replace = 'Excerpts are optional hand-crafted summaries of your content that can be used in your theme. <a href="http://codex.wordpress.org/Excerpt" target="_blank">Learn more about manual excerpts.</a>';

    static public function init()
    {
        null === self :: $instance AND self :: $instance = new self;
        return self :: $instance;
    }

    public function __construct()
    {
        add_action( 'init', array( $this, 'add_post_type' ) );

        add_filter( 'enter_title_here', array( $this, 'alter_title_string' ), 10, 2 );

        add_filter( 'default_content', array( $this, 'add_editor_default_content' ) );

        add_action( 'admin_menu', array( $this, 'add_excerpt_note_filter' ) );
    }

    public function alter_title_string( $title, $post )
    {
        if ( $this->post_type !== $post->post_type )
            return $title;

        return $title = __( 'Enter TITLE name here', 'your_textdomain' );
    }

    public function add_editor_default_content( $content )
    {
        if ( $this->post_type !== get_current_screen()->post_type )
            return $content;

        return __( 'Enter the POST TYPES long description here.', 'your_textdomain' );
    }

    public function add_excerpt_note_filter( $post )
    {
        add_filter( 'gettext', array( $this, 'alter_excerpt_mb_note' ), 10, 3 );
    }

    public function alter_excerpt_mb_note( $l10n, $string, $domain )
    {
        // Remove when not on the needed post type page
        if (
            ! is_null( get_current_screen() )
            AND $this->post_type !== get_current_screen()->post_type 
            )
        {
            remove_filter( current_filter(), array( $this, __FUNCTION__ ) );
            return;
        }

        // Remove when done
        if ( $this->to_replace === $string )
        {
            remove_filter( current_filter(), array( $this, __FUNCTION__ ) );
            return __( 'NEW FOOTNOTE', 'your_textdomain' );
        }

        return $l10n;
    }
} // END Class WPSE72418_alter_ptui_strings

} // endif;

Danke dafür. Heutzutage ist es auch möglich, einen Filter mit Enter_title_here auf die Titelaufforderung anzuwenden. Genießen!

add_filter ('enter_title_here', your_filter);

Wie Sie erwarten würden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top