Produktsortierung neu positionieren

  • In der Kategorieansicht ist ein kleines Problem aufgetaucht. Das Sortierfeld ist falsch positioniert und ragt in die Kategoriebeschreibung hinein (siehe Schreenshoot). Ich probier schon eine ganze Weile rum, bekomme es aber einfach nicht in den Griff. Im Netz habe ich aber auch keine Lösung dazu gefunden. Hat jemand eine Idee was zu tun ist?

    Anschauen kann man sich das auch hier: https://martin-hirsch.com/?product_cat=lightroom

    Einmal editiert, zuletzt von hirma (14. November 2017 um 13:36)

    • 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

  • Evtl. ein fehlender clear:both oder ein falschen postition per CSS. Könnte ziemlich viel sein. Wie sollen wir das jetzt genau beurteilen?

    Das Geheimnis des Könnens liegt im Wollen!
    [size=12]Bitte keine Hilfegesuche per PN (auch keine "privaten" Links). Das ist ein öffentliches Forum.[/SIZE]

  • Das Problem ist der negative obere Rand: margin: -40px 0px 40px 0px; für die CCS Klasse woocommerce-ordering

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Danke schon mal. Dann muss ich wohl mal suchen wo ich die finde und wie ich das ändern kann. Hast du einen kleinen Tipp für mich? ;) Sorry, aber ich hab gerade erst angefangen mich mit dem Zeug zu beschäftigen.

  • Auf jeden Fall habe ich daraus schon mal gelernt wo ich das im Browser sehe wenn ich mir den Quelltext anschaue. Dafür mal ein fettes DANKE. Jetzt müsste ich nur noch wissen wo man erkennt in welcher Datei das liegt.

    Einmal editiert, zuletzt von hirma (14. November 2017 um 14:35)

  • Ok. Da bräuchte ich wohl doch noch mal eine kleine Hilfestellung. Wenn ich das richtig Überblicke liegt die Klasse im WooCommerce.css. Das zu ändern ist aber wohl kein guter Plan, da es immer wieder überschrieben wird. Wie geht man in so einem Fall vor?

  • Ok. Da bräuchte ich wohl doch noch mal eine kleine Hilfestellung. Wenn ich das richtig Überblicke liegt die Klasse im WooCommerce.css. Das zu ändern ist aber wohl kein guter Plan, da es immer wieder überschrieben wird. Wie geht man in so einem Fall vor?

    Am einfachsten:
    Übersschreib die Regel im Customizer unter "Zusätzliches CSS".

  • Uiuiui. Wie geht sowas? Da habe ich mich noch nie damit beschäftigt. Gibt's da eine kürzere anleitung oder so?

    Naja, also der praktische Teil ist:
    Du klickst im Dashboard auf "Design" -> "Customizer" -> "Zusätzliches CSS". Dort kannst du deine CSS Regeln einfügen.

    Zu CSS im allgemeinen gibt es zum Beispiel folgende Anleitung:
    https://wiki.selfhtml.org/wiki/CSS

    Nicht direkt kurz, aber recht umfassend.

    Aber vielleicht als kurze Info:
    Die wesentlich Eigenheit von CSS ist, dass es hierarchisch überschreibbar ist. Das heißt, du kannst eine existierende Regel einfach überschreiben, in dem du eine Regel für das gleiche Element erstellst und einfach "weiter unten" im Quellcode schreibst. "Zusätzliches CSS" wird immer hinter den Stylsheets geladen und überschreibt somit jede vorherige Regel (es sei denn, sie ist mit !important gekennzeichnet).

    Wenn es zum Beispiel in der style.css (oder einem anderen Stylesheet) folgende Regel gibt :

    Code
    p
    {
    color:green;
    }

    Kannst du in "Zusätzliches CSS" die Regel überschreiben:

    Code
    p
    {
    color:red;
    }

    Die Farbe, die dann für die p-Tags gilt, wäre dementsprechend Rot und nicht Grün.

    Einmal editiert, zuletzt von danielgoehr (14. November 2017 um 21:10)

  • Ok, danke. Aber einfach

    woocommerce-ordering {
    margin: 0px 0px 40px 0px;
    }

    reinzuschreiben funktioniert nicht. Ich tippe mal drauf er kann die Klasse nicht zuordnen, oder?

  • Ok, danke. Aber einfach

    woocommerce-ordering {
    margin: 0px 0px 40px 0px;
    }

    reinzuschreiben funktioniert nicht. Ich tippe mal drauf er kann die Klasse nicht zuordnen, oder?

    Ich habe mir deinen Link jetzt nicht angeschaut (bin gerade nur auf dem Handy unterwegs). Aber deine Regel ist nicht korrekt.

    Wenn du eine Klasse ansprechen möchtest, muss ein Punkt davor. Bei einer ID ein #.
    Ohne Punkt oder # sprichst du das jeweilige Tag an (und ein Tag <woocommerce-ordering> gibt es nicht).

    Deine Regel muss also aller Wahrscheinlichkeit folgendermaßen lauten:

    Code
    .woocommerce-ordering {
        margin: 0px 0px 40px 0px;
    }

    Einmal editiert, zuletzt von danielgoehr (14. November 2017 um 21:25)

  • Es funktioniert mit dem Code hier. Gefunden im Netz. Ich glaube ich muss mich mal mit der Klassenstruktur beschäftigen.

    .woocommerce .woocommerce-ordering, .woocommerce-page .woocommerce-ordering {
    margin: 0px 0px 40px 0px;
    }

  • Es funktioniert mit dem Code hier. Gefunden im Netz. Ich glaube ich muss mich mal mit der Klassenstruktur beschäftigen.

    .woocommerce .woocommerce-ordering, .woocommerce-page .woocommerce-ordering {
    margin: 0px 0px 40px 0px;
    }

    Diese Regel ist "höherwertiger". Wenn die im Stylesheet so definiert würde, kannst du sie auch nur so überschreiben (oder du verwendest !important).

    Aber ja, generell macht es auf jeden Fall Sinn, sich zumindest ein paar CSS Grundlagen anzulesen, wenn man sich damit längerfristigen beschäftigen möchte :)
    CSS ist auch gar nicht so wahnsinnig kompliziert. Man kommt mit ein paar Basics schon ziemlich weit.

  • Ja, das habe ich gerade schon gemerkt. Hab gleich noch ein paar regeln nachgeschoben die mich schon die ganze Zeit genervt haben ;) Hast du evtl. auch einen Lösungsansatz für die Produktdarstellung? Ich hätte gerne immer einen zweizeiligen Produktnamen in der Produktübersicht Shop. (In der Einzelansicht ist das so ok). Oben der Name und unten ein 'Zusatztitel'. Momentan schaut mein Name so aus: "Hans - Gerd". 'Hans" ist der Titel, "Gerd" die Erweiterung. Solange beide auf eine Zeile passen ist das alles ok. Blöd wird es wenn die Darstellung umgebrochen wird. Deswegen würde ich das ganze gerne so stylen, dass von Anfang an zwei Zeilen in der Produktdarstellung da sind. Das Problem kann man da https://martin-hirsch.com/?product_cat=lightroom schön erkennen. Die Höhe habe ich dank deinem Hinweis mit .css mittlerweile angleichen können über die MinHeight.

  • Das Problem ist, dass die Ausgabe von Titel und Erweiterung innerhalb eines Tags erfolgt. Das heißt, beides steht in <h2 class="woocommerce-loop-product__title">.

    Mit reinem CSS wirst du dieses Problem nicht lösen können (ich wüsste zumindest nicht wie).

    Idealerweise würde ich jetzt einfach zwei Felder im Produkt machen (also ein zusätzliches Custom Field verwenden) und dann beide mit eigenen Tags über das Template ausgeben.

    Theoretisch geht aber auch die Quick & Dirty Lösung (sofern dein Titel und die Erweiterung immer mit einem Minus getrennt sind).
    Du benötigst ein Child-Theme (siehe Link unten). Dort fürgst du folgende Funktion in die functions.php ein (vorsicht, ungetestet):

    Code
    function woocommerce_template_loop_product_title() 
    {
        $titleOld = get_the_title();
        $titleArray = $teile = explode("-", $titleOld);
        $titleNew = titleArray[0].'<span class="erweiterung">'.titleArray[1].</spanp>
        echo '<h2 class="woocommerce-loop-product__title">' . $titleNew . '</h2>';
    }

    Das sollte folgende Ausgabe erzeugen:

    Code
    <h2 class="woocommerce-loop-product__title">Titel<span class="erweiterung">Erweiterung</span></h2>';

    Jetzt kannst du das <span> mit der Klasse "Erweiterung" einfach auf "display:block" setzen. Danach sollten Titel und Erweiterung automatisch in unterschiedlichen Zeilen stehen.


    https://www.elmastudio.de/ein-wordpress-…-gehts-richtig/


    Edit: Ich glaube, du kannst alternativ auch einfach ein <BR> im Titel verwenden. Zumindest geht das bei Posts und Pages, Dann sollte das bei Produkten eigentlich auch gehen. Finde ich immer etwas unelegant, aber ist wahrscheinlich die einfachste Lösung...

    Einmal editiert, zuletzt von danielgoehr (15. November 2017 um 09:29)

  • So, jetzt habe ich endlich mal wieder Zeit mich um das Problem zu kümmern. Mittlerweile habe ich den Subtitle als eine benutzerdefinierte Produkteigenschaft angelegt und möchte die Datei 'content-product.php' ändern. Mein derzeitiges Problem ist, dass ich keine Funktion finde um auf diese benutzerdefinierte Eigenschaft zuzugreifen. Ich kann den Hook auf den Titel ändern oder die Kategorie drunter setzen aber finde keinen Zugriff auf die Eigenschaft. Hat da jemand einen Tipp für mich? Oder gehe ich mit meinen Überlegungen komplett in die falsche Richtung?

Jetzt mitmachen!

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