Mehreren Beiträgen einen Satz hinzufügen


Frage: Ich möchte gerne mehreren Beiträgen einen Satz hinzufügen. Allerdings möchte ich ihn nachträglich ändern können. Wie geht das?

Ich würde dafür Shortcodes (eine Art Textbaustein) verwenden. Wenn du nicht gleich ein eigenes Plugin programmieren möchtest (was sich vermutlich komplizierter anhört, als es ist), kannst du so vorgehen:

  1. Du installierst und aktivierst das Plugin Code Snippets
  2. Über den neuen Menüeintrag Snippets > Hinzufügen gelangst du zu einer Eingabemaske. Hier suchst du dir einen möglichst aussagekräftigen Titel für deinen Shortcode aus.
  3. Im Eingabefeld Code gibst du folgenden Code ein:
    //[meinsatz]
    function meinsatz_func( $atts ){
    	return "Dieser Satz erscheint anstelle des Shortcodes";
    }
    add_shortcode( 'meinsatz', 'meinsatz_func' );
    
  4. Zuletzt klickst du auf den Button „Speichere Änderungen und aktiviere“.

Nun kannst du in Seiten und Beiträgen den Textbaustein einfügen, in dem du im Text [meinsatz] einfügst. (Den Textbaustein könnte man sicher sinnvoller benennen als „meinsatz“, aber mir fiel gerade nichts gescheiteres ein.) Der Textbaustein wird dann im Frontend in den in der Funktion definierten Satz umgewandelt (auch hier ist mir kein gescheiterer Text eingefallen, sorry), wobei du den Satz in der Funktion jederzeit ändern kannst. Die Änderung wirkt sich auf alle Textstellen aus, in denen der Shortcode [meinsatz] verwendet wurde.

Möchtest du unterschiedliche Sätze einbinden, kannst du neue Snippets hinzufügen und dabei die Funktion – natürlich mit abgeändertem Shortcode-Namen und Satz, der ausgegeben werden soll – verwenden.

Einziger Haken bei der Sache ist, dass Shortcodes nur so lange funktionieren, wie die Funktion und das Plugin Snippets aktiviert sind. Anderenfalls wird im Text auch lediglich [meinsatz] ausgegeben.

Wenn du allen Beiträgen automatisch einen gleichbleibenden Satz anhängen möchtest, kannst du alternativ auch den Text filtern. Auch dafür kannst du wieder das Plugin Code Snippets verwenden, nur gibst du dann diese Funktion ein:

add_filter('the_content','mein_anhang');

function mein_anhang($content){
  if(get_post_type()=='post') {
    $content .= "<p>Dieser Absatz erscheint unter jedem Beitrag, aber nicht auf Seiten</p>";
  }
  return $content;
}

Auch hier kannst du den Text an einer zentralen Stellen – im Snippet – ändern. Die Änderung wirkt sich auf alle Beiträge aus.