Thumbnail Overlay für Kategorie angepassen?

  • Hallo,

    meine Seite: http://www.web91.s67.goserver.host/

    Ich wollte fragen ob mir einer helfen kann das zu codieren, was ich vorhabe, ich denke ich habe den logischen Ansatz,
    aber keine ahnung wie ich es umsetzen soll und zwar:

    Wenn man eine Kategorie auswählt für einen Beitrag, soll dementsprechend AUF dem thumbnail ein overlay erscheinen und zwar so:
    wie im Anhang dargestellt:

    ich weiß jetzt nicht ob man dafür java braucht oder php reicht, aber soweit ich das verstehe müsste man das mit einer if-funktion machen,
    if (Kategorie ist Rezept vom Beitrag)
    dann (füge png-datei ein(bild)) welches ich dann mit css style und platziere.

    kann mir da jemand weiterhelfen?

    MfG

    • 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)

    Mehr erfahren

  • Es kann dir sicherlich jemand weiterhelfen. Und es ist möglicherweise sogar noch viel einfacher, als dein Ansatz …

    … aber irgendwie wird nicht richtig klar, was du willst.

    „Wenn man eine Kategorie auswählt für einen Beitrag“ – das tut man normalerweise, wenn man einen Beitrag verfasst. Das meinst du aber ziemlich sicher nicht, oder?

    Wenn ich auf einer Seite bin und lesen / mich informieren möchte, dann klicke ich entweder einen Beitrag an, der mich in seiner Vorschau / Titel / was-auch-immer irgendwie anfixt und den ich deswegen lesen möchte. Oder ich klicke eine Kategorie an, weil ich die Einschätzung habe, dass ich innerhalb dieser Kategorie Beiträge finde, die für mich interessant sein könnten.

    Für das eingestellte jpg-Bild finde ich keine Entsprechung auf der verlinkten Seite.

    Also bitte nochmal zurück auf Los! und erklären, wo zu finden ist, was du meinst … dann kann man über eine Antwort auf der Sach- statt auf der Meta-Ebene nachdenken.

    Gruß
    helix

  • danke für deine antwort helix,
    ich weiß ehrlich gesagt nicht wie ich das noch einfacher formulieren soll, man muss nicht auf die kategorie vom bild draufklicken können um auf die gewünschte kategorie zu kommen.
    Wenn ich jetzt beispielsweise ein Rezept schreibe und dieses unter der Kategorie Rezepzt abspeicher, soll quasi die vorschau auf der startseite erkennen -> dieser beitrag ist in der kategorie rezepte abgespeichert -> füge das overlay auf dem thumbnail ein mit dem bild "Rezept"

    edit: es soll natürlich auf der startseite sein mit den abgekürzten fassungen für den beitrag..

    hier nocheinmal ein bild im anhang das mans vllt besser sieht..

    Einmal editiert, zuletzt von frkyflwn (28. April 2016 um 15:28)

  • Doch, jetzt ist mir schon viel klarer (und was mir nicht klar ist, ist Sache vom CSS, das kommt dann sowieso erst später).

    Soweit ich das sehe, ist das ein eigenes Theme?
    Kannst du bitte mal den Code posten, mit dem du die Beiträge auf der Startseite ausgibst?

    Konkret: es wird ausgegeben

    HTML
    <article class="post">


    Du kannst dem <article>-Tag ohne weiteres eine weitere Klasse verpassen, die sich dynamisch aus der ID oder dem Slug deiner Kategorie generiert.
    Wenn dir damit schon die Schuppen von den Augen fallen und du weißt, was du zu tun hast, brauchst du deinen Code natürlich nicht zu posten. Ansonsten ist es hilfreich, den zu sehen, um zu sehen, wie man es gut intergrieren kann.

    Und mit deiner kategoriespezifischen Klasse kannst du nachher einfach über CSS deine verschiedenen Beiträge mit verschiedenen Labels über dem Thumbnail versehen.

    Gruß
    helix

  • Ja das Theme ist selber gemacht, ist kein problem mit dem code, wäre für deine hilfe sehr dankbar, ist das erste mal das ich ein layout code ^^
    hier der code:

  • Okay, auf ’ne Art die einfachste Lösung ist, wenn du die WP post_class ergänzst. Probier mal aus, was passiert, wenn du statt deiner Klasse (soweit ich sehe, wird die Klasse .post bei Beiträgen schon standardmäßig mit ausgegeben) diese post_class ausgeben lässt. Einfach

    PHP
    <article <?php post_class(); ?>>


    Siehe https://codex.wordpress.org/Function_Reference/post_class

    Wenn dir das viel zu viel ist, was ausgegeben wird, kannst du es auch über get_the_category(); versuchen.
    Siehe: https://developer.wordpress.org/reference/func…t_the_category/

    Gruß
    helix

  • Habe es ersetzt mit deinem Code also [COLOR=#000000][FONT=monospace]<article [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]<?php post_class[/FONT][/COLOR][COLOR=#007700][FONT=monospace](); [/FONT][/COLOR][COLOR=#0000BB][FONT=monospace]?>[/FONT][/COLOR][COLOR=#000000][FONT=monospace]>
    es hat sich nichts verändert, sollte das so sein, dass man jetzt mit den overlays weiter arbeiten kann oder sollte etwas passiern?^^'

    edit: es werden jetzt folgende klassen ausgegeben:
    [/FONT][/COLOR]<article class="post-110 post type-post status-publish format-standard has-post-thumbnail hentry category-allgemein">

    können wir vllt iwo schreiben bzw chatten? sonst dauert das hier etwas :D ich denke ich weiß worauf du abzielst aber denke nicht das ich das alleine hinkriege :D

    Einmal editiert, zuletzt von frkyflwn (28. April 2016 um 17:54)

  • Das ist doch schonmal sehr gut.

    Zuvor hatte dein <article>-Tag die css-Klasse .post
    Die hast du jetzt immer noch (ist ein bisschen nicht-sehr-übersichtlich, wenn so viele Klassen ausgegeben werden, die einzelnen Klassen sind immer mit Leerzeichen getrennt, d.h. die zweite Klasse ist dann .post), d.h. was auch immer du über diese Klasse angesprochen hast, wird weiterhin funktionieren.
    Und deine letzte Klasse setzt sich immer zusammen aus category, einem Bindestrich und dann der aktuellen Kategorie.

    Genau – worauf ich hinaus will: Den Rest machst du über CSS.
    Ich bin ziemlich sicher: Wenn du mit deinem Theme schon so weit gekommen bist, wie du jetzt bist, dann bekommst du das auch hin. (Und es ist gut, die Fragen, die vielleicht noch aufkommen, hier öffentlich abzuhandeln, dann haben andere auch was davon.)

    Beim derzeitigen Stand der Desing-Entwicklung, sprich, was du oben als Darstellungswunsch beschrieben hast, würde ich mit der Pseudoklasse :after arbeiten, etwa so:

    Code
    .category-aktuellekategorie img:after {
    content: url(bilder/deindateiname.png);
    position: absolute;
    z-index: 117;
    }


    Das Bild liegt in dem Fall in einem Ordner „bilder“ im gleichen Ordner wie deine style.css, also wahrscheinlich im Theme-Ordner.
    z-index: 117 ist eine völlig fiktive Zahl, in vielen Fällen kann die Zahl viel niedriger sein, manchmal braucht man einen höheren Wert, kommt drauf an, was noch alles absolut und mit z-index positioniert ist …
    Du brauchst sicherlich noch Angaben zur Ausrichtung, wie das Bild positioniert sein soll. Und dein übergeordnetes <div> sollte mit position: relative; versehen sein, sonst kommst du mit der absoluten Positionierung nicht zurande.

    Gruß
    helix

  • musste es so machen weil es bei after komisch aussah aber ich denke das ist relativ egal, vielen dank erstmal es klappt soweit! :-)
    Jetzt hab ich aber das Problem für Beiträge die keine thumbnails haben, was kann ich da machen? oder was passiert wenn ich zwei kategorien auswähle?

  • Beiträge ohne Artikelbild: entweder du kriegst in deinen CSS-Code doch wieder das img-Element rein (wo kein Artikelbild, wird auch kein <img /> ausgegeben, also kann auch nix :before oder :after von diesem img sein).
    Oder mit einer if-Abfrage den Code so umstellen, dass dein <div> mit der Klasse .post-thumbnail überhaupt nur ausgegeben wird, wenn ein Artikelbild festgelegt ist.

    PHP
    if ( has_post_thumbnail() ) {
    the_post_thumbnail();
    }


    Natürlich dann noch mit deinen Auszeichnungen dazu.

    Bei mehreren zugewiesenen Kategorien greift zunächst einmal die Definition für die zutreffende Klasse, die als letztes in deiner style.css steht (spätere Definitionen überschreiben frühere Definitionen).
    Als Workaround kannst du (solange das nicht viele sind) zusätzlich Einzel-IDs (die du ja auch in deiner post_class mit ausgegeben hast) abweichende Definitionen verpassen.
    Sonst dich doch mal in den anderen Ansatz mit get_the_category(); einlesen. Auf der verlinkten Seite ist auch ein Beispiel, wie man nur die jeweils erste Kategorie kriegt, wenn es mehrere sind. Wobei dann auch immer die Frage ist, ob die erste Kategorie die (in der Darstellung) bevorzugte Kategorie ist …

    Gruß
    helix

  • vielleicht kannst du hier noch einmal helfen:
    sobald man dann auf den Beitrag klickt soll auch an den Beitrag angepasst die passende Kategorie in Form des selben Bildes angezeigt werden, aber wie kann ich das so programmieren, dass
    dies auch passiert, denn hier bin ich nicht im loop und weiß nicht wie man das coden soll das erkannt wird welche Beitragskategorie gerade aktiv ist?

    so wie hier z.b. hab ich zum Test mal das "Koerper & Geist" eingefügt aber es sollte an die Kategorie angepasst sein:

    http://www.web91.s67.goserver.host/2016/03/03/test-3/

  • Ich denke schon, dass du hier „im Loop“ bist – nur in einem anderen. Wissen kann ich das natürlich nicht. Mein Browser zeigt mir dein PHP nicht an …
    Versuche doch mal dem Element <div id="content2"> auch wieder die post_class zu verpassen.

    Gruß
    helix

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!