moin gemeinde!
für ein anderes projekt würde ich gern 5 verschiedene hintergründe verwenden, je nach themenbereich einen anderen.
wäre das prinzipiell möglich?
ich danke fürs lesen und für evtl. antworten.
Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.
Sie haben schon ein Benutzerkonto? Melden Sie sich hier an.
Jetzt anmeldenHier können Sie ein neues Benutzerkonto erstellen.
Neues Benutzerkonto erstellen
moin gemeinde!
für ein anderes projekt würde ich gern 5 verschiedene hintergründe verwenden, je nach themenbereich einen anderen.
wäre das prinzipiell möglich?
ich danke fürs lesen und für evtl. antworten.
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.
Moin Stern,
generell schon, über:
<?php
if(is_archive() && have_posts()) {
$myPost = thePost();
$myCat = $myPost->parentID;
.
.
}
?>
solltest Du die Kategorie zum aktuellen Archiv bekommen. Dann mußt Du Dir für jeden Hintergrund noch entsprechend der KategorieID den Header zusammenbasteln, ggf. abweichende CSS laden und last but not least am wichtigsten: vor Beginn des Loops mittels
den Post-Puffer des aktuellen Archives wieder auf den Anfang zurückstellen, sonst geht Dir der erste Beitrag der Kategorie für den Hintergrund verloren....
vG
Arno
Geht einfacher.
1. Die einfachste Möglichkeit ist, die index.php zu duplizieren und in category.php umzubennen. WordPress sucht nämlich beim Aufruf einer Kategorie automatisch nach einer Datei category.php. Und es kommt noch besser, man kann für jede Kategorie eine unterschiedliche Datei anlegen in dem man einfach die ID dieser Kategorie anhängt. Also:
category-2.php
category-15.php
usw.
In den meisten Fällen ist es aber gar nicht nötig, gleich ganze Extra-Templates anzulegen. Deshalb:
2. Man lädt für die betreffende Kategorie ein anderes Stylesheet. Normalerweise wird ja in der header.php definiert, welche CSS-Datei geladen wird:
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
Die heißt im Regelfall: style.css Nun kann man aber hier auch folgende Anweisung einbauen:
<?php if ( in_category('5') ) { // Load special CSS for "Cars" category ?>
<link rel="stylesheet" href="<?php get_template_directory(); ?>/category-5.css" type="text/css" media="screen" />
<?php } else { ?>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<?php } ?>
D.h. wenn die Kategorie mit der ID 5 aufgerufen wird, wird nicht style.css geladen, sondern category-5.css. Genauso kann man diese Abfrage natürlich auf mehrere Kategorien erweitern.
3. Am cleversten ist folgende Lösung: Man ändert in der Datei category.php (wenn noch nicht vorhanden einfach die index.php kopieren und umbenennen.) den Eintrag des DIVs der für den Hintergrund verantwortlich ist, also z.B. #rap oder auch #content so:
Statt:
<div id="rap">
schreibt man:
<div id="rap<?php echo $cat?"-$cat":""; ?>">
Jetzt raucht man nur noch in der style.css die neue ID hinzufügen, jeweils für die betreffende Kategorie, also z.b.:
#rap-1 {
background-image: url(images/background-1.jpg);
}
#rap-2 {
background-image: url(images/background-2.jpg);
}
usw. Dann wird die ID #rap für alle normalen Ansichten verwendet und #rap-x für die jeweiligen Kategorien. Man braucht also auch nur eine style.css in der alles drin steht.
Ich hab's vorher auch so gemacht, wie Jowra vorschlägt. Da ich bei mir aber für so ziemlich jede (statische) Seite ein eigenes Header-Bild habe, ist es mir auf Dauer zu kompliziert geworden, für jeden Beitrag eine neue if-Abfrage in die "header.php" reinzufummeln.
Um dem zu entgehen, gibt's ein hübsches PlugIn - http://www.holycow.com/joe/archives/2…ordpress-plugin
Damit kann man (sogar je Posting) ein eigenes Header-Bild definieren. Hat man mehrere Postings mit verschiedenen Header-Bildern auf einer Seite, wählt das PlugIn das Bild des ersten Postings.
Leider ist der Link zum PlugIn gerade kaputt - Ich hab's mir (nach Lesen der Kommentare auf der Seite) aus einer Seite aus dem Google-Cache gezogen.
Link: http://64.233.183.104/search?q=cache…mage.phps&hl=de
:-)
Wird mit dem Plugin nur das Header-Bild verändert oder auch der Hintergrund der Seite?
öhm - je nachdem...
Das PlugIn macht folgendes: Man schreibt in ein "benutzerdefiniertes Feld" rein, welches Bild man haben will. Wo dieses Bild dann eingesetzt wird, das kann man im Quelltext vom PlugIn bestimmen.
Man kann quasi beides machen - aber nur eins von beidem zur Zeit. Guck dir mal den Quelltext an - die Erklärungen darin sind ganz gut, find ich.
Aber zwei unterschiedliche Eingaben je Posting oder Page sind nicht vorgesehen.
klappt soweit ganz gut, nur:
- lässt sich ein standart-bild einrichten? so wird auf der startseite immer das headbild des obersten posts gezeigt. meine startseite sollte aber ein startseiten-header-bild zeigen, wegen des wiedererkennungswertes.
- es lassen sich leider nur einzelne postings mit individuellen headerbilder verknüpfen, wie siehts mit ganzen kategorien aus?
Das PlugIn schreibt nur eine Style-Anweisung, wenn tatsächlich im Post oder auf der Seite ein Header-Bild definiert worden ist.
Das muss ja aber nicht die einzige Anweisung sein.
Wenn Du in der "header.php" VOR Aufruf der Funktion <?php wp_head(); ?> ein anderes Header-Bild (oder andere Bilder für Kategorien) festlegst, hast Du's schon.
(Manche PlugIns schreiben - wie auch "head image" zusätzlichen Code in den Header - und die tauchen dort auf, wo wp_head(); aufgerufen wird. Also Dein "Standard"-Bild vorher festlegen, wenn's ein "besonderes Bild" werden soll, schreibt das PlugIn seine entsprechenden Anweisungen ja danach erst - und "überdeckt" damit den "Standard"...)
Kurze Frage am Rande, funktioniert das ganze auch bei den Pages (statischen Seiten) oder nur bei den Kategorien - weil oben ist immer nur die Rede von den Kategorien?
Meinst Du das PlugIn? - Ja, funktioniert auch mit Pages.
Zitat von chilidogKurze Frage am Rande, funktioniert das ganze auch bei den Pages (statischen Seiten) oder nur bei den Kategorien - weil oben ist immer nur die Rede von den Kategorien?
Wenn Du meine Lösungvorschläge meinst, Variante 2 und 3 funktionieren mit Kategorien, Pages und allem was man noch irgendwie in WP abfragen kann.
Bei Variante 1 bin ich mir nicht sicher, also ob page-1.php, page-2.php usw. funktionieren.
Allerdings ist die Sache bei Pages ja sowieso leichter. Du kannst Dir doch so viele verschiedene Vorlagen erstellen wie Du willst.
page-rot.php, page-blau.php ...
http://doku.wordpress-deutschland.org/Seiten#Seiten_Templates
Zitat von jowraWenn Du meine Lösungvorschläge meinst, Variante 2 und 3 funktionieren mit Kategorien, Pages und allem was man noch irgendwie in WP abfragen kann.
Bei Variante 1 bin ich mir nicht sicher, also ob page-1.php, page-2.php usw. funktionieren.
Allerdings ist die Sache bei Pages ja sowieso leichter. Du kannst Dir doch so viele verschiedene Vorlagen erstellen wie Du willst.
page-rot.php, page-blau.php ...
http://doku.wordpress-deutschland.org/Seiten#Seiten_Templates
Oh, Danke für den Tipp. Werde es auf jeden Fall mal testen.
Zitat von pufaxxMeinst Du das PlugIn? - Ja, funktioniert auch mit Pages.
Hmmm, kann es sein, dass diese PlugIn nicht mit dem Kubricktheme und Wordpress 2.0 funktioniert? Oder vielleicht stehe ich ja auch den Schlauch.
Also, ich habe das Script von dem Google Link kopiert und als "headimage.php" abgespeichert, habe es anschließend ins PlugIn Verzeichnis gesteckt, hochgeladen und über den Adminbereich aktiviert.
Anschließend habe ich eine zweite Headergrafik hochgeladen, habe eine bestehende Seite geöffnet und dort im benutzerdefinierten Feld habe ich im Feld "Schlüssel" head_image und im Feld "Wert" habe ich den Namen der Headergrafik inkl. .jpg angegeben. Anschließend das ganze dem benutzerdefinierten Feld hinzugefügt.
Aber es zeigt nach wie vor meine Standard-Headergrafik an. Wo könnte ich rein theoretisch einen Fehler gemacht haben?
Auf der Webseite von Puck´s Blog - wo das Plugin mal her war - stand in den Kommentaren folgendes:
Kubrick is a little tricky as the top image includes whitespace, so be sure to include some of that in your image. Or modify the layout so it doesn’t use the whitespace…
Kubrick also sets its images in the HTML of the Theme and not the CSS. He claims this is to accomodate differing install paths, but I don’t see any reason for this to be required.
That said, the CSS element you need to be setting is called “#headerimg” in Kubrick. Change the plugin’s $headerstyle = “#masthead” line to $headerstyle = “#headerimg” and it should work fine.
Das habe ich natürlich auch korrigiert bevor ich das Plugin auf den Server geladen haben und aktivert hatte.
Hat jemand eine Idee?
Ok, hat sich nun erledigt, es funzt einwandfrei. Der Fehler lag an der Info bezüglich der Variabel: $headerstyle = “#masthead” bzw. $headerstyle = “#headerimg” - letztere war ja laut Puck für das Kubrick-Theme bestimmt - aber in der header.php heißt die Anweisung nicht "#headerimg" sondern nur "#header" - und nun funzt das ganze so wie ich es möchte :D.
Argllll - das ist doch zum verzweifeln.
Heute Mittag hatte ich mich so gefreut, das es nun mit den individuellen Header-Grafiken funzt, nun hab ich das mal auf XHTML Konformität getestet - dummerweise bekomme ich folgende Fehlermeldung:
----------
This page is not Valid XHTML 1.0 Transitional!
Below are the results of checking this document for XML well-formedness and validity.
Error Line 106 column 6: required attribute "type" not specified.
<style> #header { background: url('http://chilidog.project-equinox.de/images/hea
The attribute given above is required for an element that you've used, but you have omitted it. For instance, in most HTML and XHTML document types the "type" attribute is required on the "script" element and the "alt" attribute is required for the "img" element.
Typical values for type are type="text/css" for <style> and type="text/javascript" for <script>.
----------
Jemand eine Idee wie ich in dem PlugIn den Fehler rausbekomme? die Anweisung:
$tag = "<style type="text/css"> $headerstyle { background: url('$imagedir/$headimage'); } </style>";
funzt natürlich nicht, gibt ne große dicke Fehlermeldung auf der Seite - bzw. nen weißen Bildschirm und die Fehlermeldung.
Es ist zwar nur EINE Fehlermeldung und das ganze funktioniert, aber es ärgert mich dennoch.
Hätte jemand eine andere Idee?
Zitat von jowra
Nun kann man aber hier auch folgende Anweisung einbauen:PHP<?php if ( in_category('5') ) { // Load special CSS for "Cars" category ?> <link rel="stylesheet" href="<?php get_template_directory(); ?>/category-5.css" type="text/css" media="screen" /> <?php } else { ?> <link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" /> <?php } ?>
D.h. wenn die Kategorie mit der ID 5 aufgerufen wird, wird nicht style.css geladen, sondern category-5.css. Genauso kann man diese Abfrage natürlich auf mehrere Kategorien erweitern.
Ich bin zu dumm für PHP, deswegen brauch ich mal Eure Hilfe.
Wenn ich wie oben beschrieben die CSS-Datei lade, klappt es ohne Probleme.
In meinem Fall habe ich eine CSS für die Kategorie (5) "Fussball" (http://www.florian24.com/blog/?cat=5) und mein Standard style.css für alle anderen Kategorien (http://www.florian24.com/blog)
Ich würde jetzt gerne zusätzlich noch eine weitere Kategorie ("München", ID 10) mit eigenem CSS einbauen (nur krieg ich das nicht hin.
(Ich weiss nicht ob ich jetzt eine weitere IF-Bedingung oder ELSEIF etc. einbauen muss, und der Parser spuckt leider Fehler aus weil ich leider keine Ahnung vom Syntax hab.)
Beispiel:
<?php if ( in_category('5') ) { // CSS for "fussball" category ?>
<link rel="stylesheet" href="<?php get_template_directory(); ?>/category-5.css" type="text/css" media="screen" />
<?php elseif ( in_category('10') ) { // CSS for "München" category ?>
<link rel="stylesheet" href="<?php get_template_directory(); ?>/category-10.css" type="text/css" media="screen" />
<?php } else { ?>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<?php } ?>
Vielen Dank schon mal im Voraus fürs Lesen, vielleicht kann mir ja jemand helfen.
Gruss,
Florian
Zitatleider keine Ahnung vom Syntax
Aber Klammern zählen solltest du können... ;-) Zumindest fehlt eine } vor dem elseif
da kommt direkt noch ne frage
DANKE!!!!!!!!!!!!!!!!!!!!!!!!! Ich Krücke...
So gehts:
<?php if ( in_category('5') ) { // Load special CSS for "Fussball" category ?>
<link rel="stylesheet" href="<?php get_template_directory(); ?>http://www.florian24.com/blog/wp-content/themes/flopsycho/category-5.css" type="text/css" media="screen" />
<?php } elseif ( in_category('10') ) { // Load special CSS for "münchen" category ?>
<link rel="stylesheet" href="<?php get_template_directory(); ?>http://www.florian24.com/blog/wp-content/themes/flopsycho/category-10.css" type="text/css" media="screen" />
<?php } else { ?>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<?php } ?>
ABER eine (sicherlich dumme) Frage hätt ich aber noch:
Baue ich weitere Bedingungen mit ELSEIF ein? Also:
<?php if ( in_category('5') ) { // Load special CSS for "Fussball" category ?>
<link rel="stylesheet" href="<?php get_template_directory(); ?>http://www.florian24.com/blog/wp-content/themes/flopsycho/category-5.css" type="text/css" media="screen" />
<?php } elseif ( in_category('10') ) { // Load special CSS for "münchen" category ?>
<link rel="stylesheet" href="<?php get_template_directory(); ?>http://www.florian24.com/blog/wp-content/themes/flopsycho/category-10.css" type="text/css" media="screen" />
<?php } elseif ( in_category('2') ) { // Load special CSS for "fussball wm" category ?>
<link rel="stylesheet" href="<?php get_template_directory(); ?>http://www.florian24.com/blog/wp-content/themes/flopsycho/category-10.css" type="text/css" media="screen" />
<?php } else { ?>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
<?php } ?>
??? Danke, danke, danke schon mal für die Geduld...
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!