Wenn man Inhalte einer Seite an beliebiger Stelle eines Templates oder in einer Sidebar ausgeben möchte, ist das über einen kleinen Codeschnipsel recht einfach zu realisieren.
Inhaltsverzeichnis:
Sidebar Inhalte mit Seiten steuern
Möchte man Inhalte einer Sidebar mit einem guten Editor pflegen, ist der folgende Weg ein sehr praktischer:
Zuerst installiert man sich das Plugin WP PHP Widget. Damit kann man PHP Code in Sidebar Widgets ausführen.
Dann erstellt man das Widget in der Sidebar und fügt folgenden Code ein:
<?php $id = 99; $p = get_page($id); echo apply_filters('the_content', $p->post_content); ?>
An Stelle der 99 gibt man die ID der Seite an, die ausgegeben werden soll. Die ID findet man, wenn man in der Seitenübersicht mit der Maus über den Namen der Seite geht. Hier zu sehen.
Seiteninhalte im Template ausgeben
Den genannten Codeschnipsel kann man natürlich genausogut an jeder beliebigen Stelle des Themes ausgeben. Ein Beispiel ist überflüssig. Wer weiß wie man mit Themes arbeitet, weiß auch wie man den Schnipsel einbaut.
Und wenn jemand wirklich gar keine Ahnung hat, wie das alles zu funktionieren hat, darf sich gerne professionelle Hilfe beim WordPress-Entwickler seiner Wahl suchen.
Ayhan
Hi,
danke für den Tipp.
Eine Frage: Wie gibst du „Inhaltsangabe dieses Artikels“ aus. Ist es ein Plugin?
Lg
Ayhan
René Dasbeck Post author
Das kann man im Theme ausgeben zB in der single.php mit:
Markus
Danke super erklärt, konnte es auf anhieb ohne probleme umsetzen.
Klaus
Code wurde teilweise verschluckt, neuer Versuch:
// *** *** ***
// Seiteninhalt in Sidebar
function content_in_sidebar($atts, $content = null) {
extract(shortcode_atts(array(
"pageid" => ’99‘,
), $atts));
$p = get_page($pageid);
$output = apply_filters(‚the_content‘, $p->post_content);
return ‚<div class="page_content">‘. $output .'</div>‘;
}
add_shortcode("content_in_sidebar", "content_in_sidebar");
// [content_in_sidebar pageid="2128"]
// *** *** ***
Der Code gehört in die functions.php 🙂
René Dasbeck Post author
Danke Klaus für den weiteren Lösungsvorschlag. Ob dieser allerdings für den Unbedarften einfacher ist, ist fraglich. Nichtsdestotrotz danke für deine Mühen.
Klaus
Sehr guter Tipp! Man kann das auch ohne Plugin via Shortcode realisieren, vielleicht einfacher für den unbedarften User 🙂
Also z.B. so:
// *** *** ***
// Seiteninhalt in Sidebar
function content_in_sidebar($atts, $content = null) {
extract(shortcode_atts(array(
"pageid" => '99',
), $atts));
$p = get_page($pageid);
$output = apply_filters('the_content', $p->post_content);
return ''. $output .'';
}
add_shortcode("content_in_sidebar", "content_in_sidebar");
// *** *** ***
Einsatz:
[content_in_sidebar pageid=“2128″]
Caspar Hübinger
Interessant, warum schickst du den Filter mit?
René Dasbeck Post author
Hi Caspar,
gute Frage. Wozu der Filter da ist, muss ich dir vermutlich nicht erklären. Zumindest brauchte ich ihn um Visual Composer Shortcodes auszuführen. Wenn man den reinen Inhalt möchte, ist das nicht zwangsweise nötig. Wenn du noch eine elegantere Lösung hast…nur her damit! 😉
Gruß
René