more-link mit jump-Funktion zur Sprungmarke

  • Hi Community,
    ich habe im Web zahlreiche Artikel gefunden, die erklären, wie man einen Filter einbauen kann, damit man beim Drücken des "Weiterlesen" - Buttons am Beginn des Artikel landet und nicht bei der Sprungmarke die durch <!--more--> festgelegt wurde. Leider habe ich aber keinen Artikel gefunden, der das Gegenteil beschreibt: Wenn ein Theme diese Funktion nicht unterstützt, wie ich sie dann einbauen kann.

    Daher meine Fragen: Ich nütze bei einem Theme (_s von automattic) the_content und definiere über <!--more--> wo der "Weiterlesen"-Button angezeigt wird. Wenn ich ihn auf der Seite nutze, springe ich zum Artikelbeginn statt zur Sprungmarke.
    1) Weiss jemand, wie man das ändern kann, damit ich zur Sprungmarke komme? In welcher Datei wird denn diese Basisfunktion überhaupt festgelegt?

    2) Oder liegt der Fehler an meinen Änderungen, aber ich sehe ihn nicht?
    Ich habe in der functions.php eine Änderung vorgenommen. Habe ich vielleicht da was übersehen???

    PHP
    //CHANGE READ MORE TEXT
    add_filter( 'the_content_more_link', 'modify_read_more_link' );
    function modify_read_more_link() {
    return '<div class="mehrlesen"><a class="more-link" href="' . get_permalink() . '">WEITERLESEN</a></div>';
    }

    Danke!
    Raphael

    • 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

  • Ich vermute, dass ein Div mit der ID #more in deinem Theme existiert. Also häng an den href einfach noch #more an:
    href="' . get_permalink . '"#more

    Ansonsten mal einen Link zum Blog posten.

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • 575
    Hallo Maxe,
    erst mal danke für die Antwort. Ja, du hast vollkommen recht. einen <div> mit #more gibts. Das einzige Problem ist jetzt, wie ich das #more an .get_permalink dranhänge: href="' . get_permalink . '"#more" funktioniert jedenfalls nicht. Ich hab das hier probiert, hat aber auch nicht geklappt.

    PHP
    href="' get_permalink '"."#more"

    Bin bisschen ratlos, denn ganz offensichtlich scheitert das Thema an einem simplen Punkt. ;) Hast du Ideen?

    Danke
    Bio

  • <a class="more-link" href="' . get_permalink() . '#more">

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Hallo Maxe,
    danke für die Korrektur, aber es klappt immer noch nicht. Hier der Link zum Blog. Und hier der aktuelle Codeschnipsel aus der functions.php:

    PHP
    add_filter( 'the_content_more_link', 'modify_read_more_link' );
    function modify_read_more_link() {
    return '<div class="mehrlesen"><a class="more-link" href="' . get_permalink() . '#more">WEITERLESEN</a></div>';
    }

    Die URL, die jetzt erzeugt wird ist, http://www.example.com/beitragstitel/#more. Das ist also inzwischen korrekt. Trotzdem zeigt der Browser den oberen Bereich und geht nicht runter zum Anker. Im Quelltext ist jetzt an der Stelle des Ankerpunkts der richtige Code. z. B. <span id="more-601"></span> In der functions.php habe ich keinen Code gefunden, der die more-Funktion deaktiviert. >>>?

    Danke vorab

  • bin gerade nur mit Smartphone unterwegs, aber ich denke 601 ist die Post ID, oder? Dann musst du dem more auch die ID anhängen.

    ... '#more-' . get_the_ID() . '">

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Ja, 601 ist die ID des Artikels. Wenn ich das jetzt so löse, wie du vorschlägst, krieg ich folgenden Link: example.com/beitragsname/#more 601 aber sonst ändert sich nichts. ;)

    Kann das Problem auch serverseitig sein? Der Hoster hat ganz seltsame Sicherheitseinstellungen.

    Grüße
    Bio

  • so wie du schreibst hast du den Bindestrich nach dem more vergessen.

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

Jetzt mitmachen!

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