Inhalt einer Seite mit Shortcode in einen anderen Wordpress-Artikel anzeigen lassen

Wenn man bestimmte Textabschnitte auf verschiedenen Seiten verwenden will, kann z.B. Werbung oder Hinweistexte einfach mit dem Shortcode innerhalb von Wordpress-Artikeln an beliebiger Stelle eingefügt werden. Der Text kann bequem im Editor geändert werden.

 

 

Shortcode-Inhalt erstellen

Für den Artikel der mit dem Shortcode eingefügt werden soll, wird einfach ein neuer Beitrag oder Seite erstellt.
In meinem Beispiel verwende ich Werbung innerhalb verschiedener Beiträge.
Shortcode-Beitrag erstellen


Der Beitrag wird im Entwurfsmodus gespeichert. So erscheint er nicht separat auf der Webseite.
Als Entwurf speichern


ID des Shortcode-Artikels auslesen

Für den Shortcode wird die ID des Artikels benötigt.
Die ID erscheint im Browser unten-rechts wenn man mit der Maus "Bearbeiten" oder "Vorschau" berührt.
ID im Beitrag anzeigen


Oder in der Seiten-Übersicht wenn man mit der Maus über den Titel geht.
ID in der Uebersicht anzeigen

Hier im Beispiel ist des die ID "721". Jeder Artikel hat eine eindeutige Identitätsnummer (ID).


Die Funktion für den Shortcode

Für den Shortcode wird eine Funktion benötigt. Diese Funktion wird in die "functions.php" des Wordpress-Themes eingefügt.

function werbung_shortcode() { 
    $article =    get_post(721);
    $content =    $article->post_content;
    return '<p>'.$content.'</p>';
}
add_shortcode( 'werbung', 'werbung_shortcode' );

In die Wordpress-Funktion "get_post" wird die ID des Shortcode-Artikels in den Klammern eingetragen.

Hier im Beispiel hat der Shortcode den Namen "werbung" bekommen.
Der Name des Shortcodes, sowie auch der Name der Funktion kann nach belieben vergeben werden.

 

Shortcode in Wordpress Artikel einfügen

Der erstellte Shortcode-Beitrag wird dann mit dem Shortcode an beliebiger Stelle in einen Wordpress-Artikel eingefügt.
Shortcode

 

Funktion erweitern

Hat man mehrere Beiträge die als Shortcode in verschiedenen Artikeln erscheinen sollen, kann die Funktion in der functions.php erweitert werden.

function artikel_shortcode($atts) {
    $a = shortcode_atts( array('id' => ''), $atts );
    $article =    get_post($a['id']);
    $content =    $article->post_content;
    return '<p>'.$content.'</p>';
}
add_shortcode( 'artikel', 'artikel_shortcode' );

In diesem Beispiel habe ich den Shortcode-Namen "artikel" gewählt, da dieser Shortcode individuell eingesetzt werden kann.

Im Shortcode wird dann die ID des Shortcode-Artikels eingetragen:
[artikel id="721"]

Die ID muss in Anführungszeichen stehen.

 

 

Weitere Informationen:

Shortcode in Wordpress

Benutzerdefinierte Felder in Wordpress Teil 2

 

Kommentare   

0 #11 Manni 2016-05-24 15:00
zitiere chris:
Gibt es auch eine Möglichkeit das Multisite-übergreifend zu machen?

Geht leider nicht.
0 #10 chris 2016-05-24 12:42
Gibt es auch eine Möglichkeit das Multisite-überg reifend zu machen?
0 #9 jw 2015-05-21 08:59
Gibt es eine Möglichkeit, nur den Text der Seite bis zum "Read more" auszugeben?
0 #8 Nico 2014-12-09 14:23
Vielen Dank für die super Erklärung!
Ist es auch möglich das dazugehörige Beitragsbild zu zeigen?
+1 #7 dsv 2013-08-19 16:05
Das klappt SUPER :D , herzlichen Dank für die Hilfe!
0 #6 dsv 2013-08-19 15:01
zitiere Manni:
URLs können einfach im Texteditor eingegeben werden, dazu ist kein Shortcode notwendig.


das war nur ein beispiel, ich meine natürlich nicht google.de sondern zum beispiel die id eines beitrages oder eben der link dazu.
0 #5 Manni 2013-08-19 14:56
URLs können einfach im Texteditor eingegeben werden, dazu ist kein Shortcode notwendig.
0 #4 dsv 2013-08-19 14:41
zitiere Manni:
Shortcode-Funktionen können erweitert werden.
Der Beitrag wird noch erweitert.
Unter anderem wie man auf verschiedene Seiten per Shortcode zugreifen kann etc.

Vielen lieben Dank!
+1 #3 Manni 2013-08-19 14:25
Shortcode-Funkt ionen können erweitert werden.

Der Beitrag wurde erweitert.
0 #2 dsv 2013-08-19 14:19
Das funktioniert super, was muss ich machen um die Funktion so zu erweitern, dass man im Shortcode selber eine URL angibt und nicht in der funktion.php?

also zum Beispiel [werbung="www.google.de"]
so bräuchte ich für mehrere Autoren, den Code nur einmal in der function.php