WP Theme mnmlwp: Beitrag mit/ohne Artikelbild (Beitragsformate)
Normalerweise werden Blog-Beiträge mit einem Standard-Bild ausgegeben. Es wird also das Beitragsbild in einem fest vorgegebenen Format sowohl in der Blog-Artikelliste als auch dann im einzelnen Beitrag angezeigt.
Das passt aber nicht bei jedem Beitrag so richtig bzw. engt die Beitrags-Gestaltung etwas ein. Also soll es die Option geben, bei jedem Beitrag selbst entscheiden zu können, ob dieser mit oder ohne Standardbild angezeigt wird.
Basics …
Bei festen Seiten (Pages) ist das einfach, dort legt man einfach ein weiteres Template an, mit dem man dann entweder gar kein oder ein anders vorfomatiertes Bild ausgibt.
Das Template-System gibt es aber für Beiträge (Posts) nicht. Dort gibt es stattdessen die Beitragsformate. Bei der Suche nach einer geeigneten Lösung habe ich dazu zwar ein paar interessante Dinge gefunden, aber nichts, was mein Problem wirklich löst. Nur um die „Such-Ergebnisse“ festzuhalten (es könnte ja irgendwann nochmal wichtig werden):
Beitrags-Typen (Custom Post Types) …A
Die Beitragsformate sind nicht zu verwechseln mit „Custom Post Types“, denn die TYPES machen einen ganz eigenen, quasi „zweiten Beitragsbereich“ auf – das ist interessant für anderes Projekte, aber nicht jetzt. Nur als Notiz:
pressengers.de/tipps/wordpress-anpassen-custom-post-types-erstellen/
Beitragsformate (Custom Post Formats)
Was wir im Moment brauchen, sind reine FORMATE, also nur andere Darstellungsoptionen für die Beiträge, wie hier beschrieben:
wildbits.de/2015/12/18/wordpress-beitraege-gestalten/
WordPress liefert fertig benannte Beitragsformate mit. Die sind aber irgendwie nicht ausgereift und bedeuten einen ganz schön weiten Eingriff ins System. Da ich dazu gerade keine Zeit und keine Lust habe, hab ich mir was anderes ausgedacht.
… und eigene Lösung
Da das also alles nicht das ist, was ich möchte, gibt es erstmal folgende eigene Lösung:
1. Grundsätzlich ohne Bild
Die Beiträge werden grundsätzlich erstmal OHNE Bild formatiert. Dazu im Theme Editor > single-post.php die Zeile, die für das Bild zuständig ist, auskommentieren:
// Eigene Anpassung: Beitragsbild WEG
/* if ( has_post_thumbnail() ) {
echo '<img class="mnmlwp-featured-image lazy" data-original="' . get_the_post_thumbnail_url( get_the_ID(), 'mnmlwp-1600' ) . '" src="' . mnmlwp_assets_url() . '/img/placeholder.png" title="' . get_the_title() . '">';
} */
So. Jetzt hat KEIN Beitrag mehr ein automatisches Bild.
2. Shortcode fürs Bild
Wenn jetzt ein Beitrag eben doch MIT dem Standardbeitragsbild erscheinen soll, wird das über einen Shortcode geregelt. Den Shortcode dafür habe ich als Code Snippet erfasst. Dabei habe ich den Code exakt so gelassen, wie er zuvor in der single-post.php drinstand. Wer hier bereits noch mehr anpassen möchte, kann das über individuelles CSS oder eben bereits hier im Code steuern.
function shortcode_beitragsbild($atts, $content = null) {
if ( has_post_thumbnail() ) {
$html = '<img class="mnmlwp-featured-image lazy" data-original="' . get_the_post_thumbnail_url( get_the_ID(), 'mnmlwp-1600' ) . '" src="' . mnmlwp_assets_url() . '/img/placeholder.png" title="' . get_the_title() . '">';
return $html;
}
}
add_shortcode('beitragsbild', 'shortcode_beitragsbild'); // Aufruf: [beitragsbild]
3. Umsetzung
Bei jedem Beitrag kann jetzt jede/r selbst entscheiden, ob dieser mit Standard-Beitragsbild oder ganz ohne Bild oder mit einem sebst eingesetzten Bild dargestellt werden soll. Das geht dann so:
a) wenn das automatische Beitragsbild NICHT erscheinen soll, einfach einfach gar nichts machen.
b) wenn das automatische Beitragsbild angezeigt werden soll, einfach den Artikel mit [beitragsbild] starten.
Getestet – funktioniert 🙂
Happy Coding,
antiblabla admina