toscho.design

WordPress: Editor vorbelegen

Vielen Leuten fällt es schwer, einen vernünftig gegliederten Text zu schreiben. Man kann ihnen in WordPress mit vorbereitetem Inhalt etwas unter die Arme greifen: Der Filter 'default_content' existiert genau dafür. Er liefert die Argumente $content und ein Post-Objekt, damit man den Text noch ein wenig genauer zuschneiden kann.

Am Beispiel: Gegeben sei ein Custom Post Type review. Wir möchten diese Kritiken möglichst einheitlich gliedern, den Autoren aber freie Hand lassen.

/*
 * See wp-admin/includes/post.php function get_default_post_to_edit()
 * There are also the filters 'default_title' and 'default_excerpt'
 */
add_filter( 'default_content', 't5_preset_editor_content', 10, 2 );

/**
 * Fills the default content for post type 'review' if it is not empty.
 *
 * @param string $content
 * @param object $post
 * @return string
 */
function t5_preset_editor_content( $content, $post )
{
    if ( '' !== $content or 'review' !== $post->post_type )
    {
        return $content;
    }

    return '<p>Einleitende Worte …</p>
<h2>Inhalt</h2>
<h2>Kritik</h2>
<h2>Links</h2>';
}

Bei einem Beitrag des Posttypen Review sieht das beispielsweise so aus:

Wir könnten auch für alle drei Abschnitte separate Editoren anbieten, deren Inhalte wir im Frontend zusammensetzen. Das ist aber manchmal zu starr; die hier gezeigte Vorbelegung bindet den Autor nicht, sondern steht nur als Empfehlung da – sozusagen als flexible Alternative zu Metaboxen.