Ich würde auf meinem Gedichteblog gerne manche Artikelüberschrift zentrieren. Da nicht alle meine Gedichte linksbündig wie z. B. Ein unlösbarer Fleck sind, eben die Überschriften zentrierter Gedichte wie bspw. Morgenmuffel.
Dass man Artikelüberschriften über die styles.css zentrieren kann, ist mir bekannt. Jedoch beträfe dies alle. Meine Versuche im Admin-Bereich unter 'Artikel erstellen' Artikelüberschriften mittels gängigem html-Code zu zentrieren, funktionierten zwar für jedes gewählte Gedicht, das heißt, jeden gewählten Artikel einzeln, brachten aber die Anzeige in meinem Theme durcheinander. In der Sidebar wurden unter 'Alle Gedichte' sämtliche Überschriften zentriert angezeigt. Der html-Code zentrierter Artikelüberschriften war für Besucher und im Backend sichtbar. In den Einzelansichten von Gedichten bzw. Artikeln mit zentrierten Überschriften verschob sich weit mehr als gewollt in die Mitte.
Ich googelte nach einer Lösung des Problems, durchsuchte dieses Forum, fand keine. Hat jemand eine Idee oder weiß, wie man manche Überschriften eines WordPress-Blogs zentrieren kann? ohne unerwünschte Nebeneffekte zu haben.
Manche Artikelüberschriften eines Blogs zentrieren
-
-
- Gerade eben
- Anzeige
Hallo!
Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.
- ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
- ✔️ Deutsche Server & DSGVO-konform
- ✔️ Persönlicher Support (kein 0815-Ticket-System)
-
Lösung?
Hi Veit,
du könntest dafür ein benutzerdefiniertes Feld verwenden, welches du dann in einem Artikel mit einem Wert füllst oder eben nicht, wenn du es nicht brauchst.
Deine Lösung könnte dann in etwa so aussehen, dass du nach dem benutzerdefinierten Feld fragst und wenn es existiert, dann eine CSS-Klasse ausgibst.
PHP
Alles anzeigen<?php // Auslesen des Custom Fields $my_field = get_post_meta($post->ID, 'Mein Feld', true); // Abfrage ob es existiert if($my_field) { the_title('<h1 class="voll-zentriert">', '</h1>'); } // wenn nicht else { the_title('<h1>', '</h1>'); } ?>So sollte es funktionieren! :) Du brauchst dazu natürlich in einem Beitrag, in dem du die Klasse verwenden willst, ein Feld mit dem Namen 'Mein Feld' (ohne Hochkommata) und dieses Feld muss dann einen Wert haben, welcher ist egal. Das Ganze lässt sich noch deutlich verfeinern, dies hier ist nur der Einstieg.
Wenn du tiefer in diese Thematik einsteigen möchtest, solltest du dir mal Custom Field Templates anschauen, dass ist - wie ich finde - ein echt geniales Plugin.Herzliche Grüße,
Sebastian -
Lösung nicht so einfach für einen Anfänger
Hallo Sebastian,
danke für deine schnelle Antwort! Ich bin Wordpress-Neuling, habe nur wenig Ahnung von CSS. Das Plugin Custom Field Template hat einen ganz schönen Funktionsumfang, den ich lediglich geringenteils durchschaue. Ich will doch aber nur Überschriften zentrieren! :) Gibt es ein kleineres Plugin, das diese Aufgabe ebenso erledigen könnte?
Müsste ich den von dir vorgeschlagenen Code, mit dann evtl. nötigen Abänderungen, unter den Einstellungen von Custom Field Template in das Template-Content-Fenster einfügen, dieses Template benennen und dann in den gewünschten Artikeln durch den dortigen Custom-Field-Bereich abrufen? Was sollen denn die Häkchen vor den Obstsorten und Ähnliches darin? :confused:
Freundlichen Gruß
Veit -
Lieber Veit,
für deine Lösung brauchst du das Plugin nicht. Das ist die sprichwörtliche Kanone, mit der man auf Spatzen schießt.
Du brauchst in deinen Beiträgen nur ein Custom Field bzw. benutzerdefiniertes Feld anlegen. Diese Felder kannst du in jedem Beitrag nutzen, den du in Wordpress schreibst. Wenn dir das nicht klar ist, benutze bitte den Wordpress-Codex oder Google, um die die relevanten Informationen zu bekommen.
Ein jedes solches Feld hat einen Namen (Schlüssel) und einen Wert. Der genaue Wert ist in deinem Fall egal, muss aber existieren (z.B. '1'), wichtig ist, dass du ein Feld anlegst, für den jenigen Beitrag, für den du deine Überschrift zentrieren willst.
Dieses Feld dient dann später sozusagen als Schalter für deine Headline. Wenn es existiert, wird der Schalter betätigt, wenn nicht, bleibt alles beim Alten.Du musst in deinem Template (single.php) dann den Code zum Einsatz bringen, den ich dir beim letzten Mal geschickt habe. Wichtig ist dabei besonders, dass die Syntax stimmt und der Name deines Feldes (nachdem du in dem Template mittels PHP fragst) auch genau dem entspricht, was du in deinem Beitrag (in dem du die Healdine zentrieren willst) verwendet hast.
Der Code, den ich dir gesendet habe, ist nur ein Ausschnitt aus dem loop, den du in deinem Template finden wirst. Schau dir das Template in seiner originalen Form an und ersetze einfach den normalen Code mit dem, den ich dir geschickt habe.
Wenn das Feld existiert, wird der Code die Headline mit der CSS-Klasse ausgeben. Du kannst dass vielleicht auch einfach mal direkt mit einem Inline-CSS-Style testen. Der Code für die Headline müsste dann so aussehen:
Der Vorteil ist, dass du keine CSS-Klasse brauchst, die Lösung ist dabei aber nicht so flexibel wie eine eigene CSS-Klasse.
Ich hoffe das bringt dich deiner Lösung näher! :)
Herzliche Grüße aus Bali,
Sebastian -
Funktioniert nicht ganz
Die CSS-Klasse dort, wo die Leerzeile ist, in die loop.php meines Themes einzufügen, bewirkte, dass über jeden Beitrag eine zweite h1-Überschrift angezeigt wurde, schwarz und zentriert.
PHP<?php /* Start the loop */ if (have_posts()) { while (have_posts()) { the_post(); ?> <?php /* Permalink nav has to be inside loop */ if (is_single()) include (TEMPLATEPATH . '/navigation.php'); ?> <div id="post-<?php the_ID(); ?>" class="entry">
Liegt das an der CSS-Klasse oder müsste ich einen Teil des obigen Codes durch sie ersetzen? -
Hi,
wenn du zwei Überschriften angezeigt bekommst, wird das wohl daran liegen, dass das Custom Field nicht gefunden wird.
Setze mal bitte folgendes in den Loop ein:
PHP
Alles anzeigen// Auslesen des Custom Fields $my_field = get_post_meta($post->ID, 'Mein Feld', true); if($my_field) { echo 'Feld ist vorhanden!'; } // wenn nicht else { echo 'Feld ist nicht vorhanden!'; }[FONT=Verdana][COLOR=Black]Wenn du dann auf der Seite die Ausgabe: [COLOR=Black]Feld ist nicht vorhanden!
findest, solltest du mal überprüfen, ob du den Namen des Feldes richtig verwendest und ob das Feld wirklich einen Wert hat.Ob das Feld einen Wert hat, kannst du so testen:
[/COLOR][/COLOR][/FONT]
PHP$my_field = get_post_meta($post->ID, 'Mein Feld', true); if($my_field) echo 'Mein Feld hat den Wert: '.$my_field;[FONT=Verdana][COLOR=Black][COLOR=Black]
Wenn 2 Headlines ausgegeben werden und das [/COLOR][COLOR=Black]Feld ist nicht vorhanden, hast den den Aufruf von the_title(); zwei mal in deinem Template. Den alten Aufruf müsstest du dann löschen.Was das Styling deiner Überschrift angeht, dafür ist CSS verantwortlich und wenn du an dem Aussehen deiner Headlines etwas verändern möchtest, müsstest du dich mit der CSS-Datei deines Themes auseinander setzen.
Beste Grüße [/COLOR][/COLOR]
[/FONT]
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!