Support » Allgemeine Fragen » Header Bild für Kategorie

  • hallo, ich möchte für jede kategorie ein anderes header bild festlegen und würde da unterstützung benötigen. ich hab schon vergebens mehrer Vaianten versucht.

    hier ein kurzer aussug, wo aber nur das Fallback bild ausgegeben wird:

    <?php if (is_category('1210')) { ?>
    						<div class="top_image" style="background-image: url(<?php echo bloginfo('template_directory'); ?>/images/top_image_africa.jpg);"></div>
    					<?php } ?>	
    
    					<?php if (is_category('1211')) { ?>
    						<div class="top_image" style="background-image: url(<?php echo bloginfo('template_directory'); ?>/images/top_image_asia.jpg);"></div>
    					<?php } else { ?>
    					<div class="top_image" style="background-image: url(<?php echo bloginfo('template_directory'); ?>/images/top_image_fallback.jpg);"></div>
    
    					<?php } ?>

    danke lg

Ansicht von 11 Antworten - 1 bis 11 (von insgesamt 11)
  • Hallo nothinghalosix,
    der Weg, jede Kat einzeln abzufragen, ist nicht grade der smarteste. Bei jeder neuen Kategorie müsstest Du so im Template rumhacken und die neue ID ergänzen. Der m.E. nach smartere Weg wäre es den „Slug“, also die „Titelform (in URLs)“ abzufragen und diese dynamisch vor die Dateiendung der Grafik zu hängen.

    Dann kannst Du neue Kats anlegen, denen ein Slug zuweisen, die Grafik genauso nennen wie das Slug und schmeißt sie einfach in den richtigen Ordner (wp-content/themes/<NameDeinesThemes>/images/) und aus die Maus.

    Lösungsansatz anbei:

    <?php
       $terms = get_terms( 'category', 'orderby=id' );
       echo '<div class="top_image" style="background-image: url(' . get_stylesheet_directory_uri() . '/images/' . $terms[0]->slug . '.jpg);"></div>';
    ?>

    Die Bilder müssten in dem Beispiel in den „images“-Ordner Deines Themes gehen.

    Mögliches Problem – Ein Artikel lässt sich durchaus auch mehreren Kategorien zuweisen und dann ist Dein Konzept leider etwas hinfällig. Als Lösung mache ich das oben so, dass ich nach einem bestimmten Kriterium (in dem Fall der ID) sortiere, mir Kats mit 0 Beiträgen schenke und aus der Vielzahl der möglichen Ergebnisse nur das ERSTE rauspicke. Du kannst auch nach anderen Kriterien sortieren, siehe: https://developer.wordpress.org/reference/functions/get_terms/ -> „orderby“

    Hoffe, ich konnte ein wenig helfen. Lass mich bitte wissen, ob mein Beispiel wie gewünscht funktioniert, okay?

    Thread-Starter j_spaceman

    (@nothinghalosix)

    hi Thomas,

    danke für deine Antwort. sieht schon besser aus. leider wird mir das bild nicht ausgegeben. Im inspektor siehts so aus
    <div class="top_image" style="background-image: url(http://p346809.mittwaldserver.info/wp-content/themes/floatwork_/images/allgemein.jpg);"></div>

    ganz schnall ich noch nicht.

    habe Kategorien: afrika, asien, bangladesch, burkino_faso, …….

    Dann geh mal bitte in einen betreffenden Artikel und schau dort nach, welchen Kategorien er zugeordnet ist. Mit Sicherheit hast Du dort auch ein Häkchen an „Allgemein“ stehen, richtig?

    Thread-Starter j_spaceman

    (@nothinghalosix)

    als beispiel: die Kategorie Afrika hat die ID 1210 und den permalink afrika

    Thread-Starter j_spaceman

    (@nothinghalosix)

    hi, ne allgemein gibts da leider nicht. der Punkt -> Projekte ist mit ACF angelegt, falls die INfo hilft

    Also irgendwoher muss das „allgemein“ ja kommen, da es dynamisch abgefragt wird. Insofern _muss_ es eine entsprechende Kategorie geben. ACF kenne ich nicht. Aber ein Link zur Seite wäre interessant, dann könnte man mal was genauer prüfen. Gern auch per PN, wenn Du den hier nicht posten möchtest.

    Thread-Starter j_spaceman

    (@nothinghalosix)

    jetzt hab ichs.

    sind custom post types also taxonmies.

    habs jetzt so gelöst->

    <?php if (has_term('1210', 'kategorie')): ?>
    					<div class="top_image" style="background-image: url(<?php echo bloginfo('template_directory'); ?>/images/afrika.jpg);"></div>
    				<?php endif ?>
    
    				<?php if (has_term('1211', 'kategorie')): ?>
    					<div class="top_image" style="background-image: url(<?php echo bloginfo('template_directory'); ?>/images/asien.jpg);"></div>
    				<?php endif ?>
    
    				<?php if (has_term('1227', 'kategorie')): ?>
    					<div class="top_image" style="background-image: url(<?php echo bloginfo('template_directory'); ?>/images/central_europe.jpg);"></div>
    				<?php endif ?>
    
    				<?php if (has_term('1251', 'kategorie')): ?>
    					<div class="top_image" style="background-image: url(<?php echo bloginfo('template_directory'); ?>/images/latin_america.jpg);"></div>
    				<?php endif ?>

    danke nochmal für deine hilfe

    Auch das könnte man dynamisch lösen, aber Hauptsache Du hast eine funktionierende Lösung 😉

    Freut mich, dass ich Dir ein wenig auf die Sprünge helfen konnte.

    Thread-Starter j_spaceman

    (@nothinghalosix)

    kannst du mir das auch noch reinposten wie es dynamisch wäre. ist bestimmt schöner und für die Leute die auch das problem haben, haben werden usw. auch nicht schlecht 😉

    danke
    lg

    Thread-Starter j_spaceman

    (@nothinghalosix)

    BITTE 😉

    Gern 🙂

    Ungetestet, sollte aber klappen:
    Ersetz in meinem letzten Codeschnipsel einfach mal das „category“ durch den Namen Deiner Taxonomie. Dann sollte das auch klappen.

Ansicht von 11 Antworten - 1 bis 11 (von insgesamt 11)
  • Das Thema „Header Bild für Kategorie“ ist für neue Antworten geschlossen.