Support » Allgemeine Fragen » Kategorie-Beschreibung kürzen

  • Gelöst pezi

    (@pezi)


    Hallo!

    Kann man ein zu lange Beschreibung einer Kategorie auch so als Teaser -> Link zu mehr, zum ganzen Text gestalten? Ist dazu ein Plugin nötig, gibts das überhaupt?

    Ich habs jetzt mal provisorisch so gelöst:
    Kurzen Teaser in die Kategoriebeschreibung und einen manuell eingefügten Link zum Langtext, der als Beitrag kommt.

    Das ist für mich, bzw. für ein paar Kategorien kein Problem, aber diese Site soll irgendwann ~50 Kategorien enthalten. Jede kriegt einen ur langen Text als Beschreibung.
    Das kann ich dem Betreiber schwer zumuten, das der dann jedesmal Teaser da, Beitrag dort und manuelle Links setzt.
    Hier wäre ein Plugin oder ein Trick hilfreich …

Ansicht von 11 Antworten - 1 bis 11 (von insgesamt 11)
  • Hallo,
    eine Möglichkeit ist die Nutzung des Plugins Advanced excerpts. Anleitung siehe hier.
    Alternativ kann man aber auch eine function im childtheme in der functions.php (siehe hier) nutzen:

    <?php
     
    // Auszug Länge verlängern auf 80 Wörter
    function custom_excerpt_length( $length ) {
      return 80;
    }
    add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
     
    ?>

    Viele Grüße,
    Hans-Gerd

    Danke, aber das klappt beides nicht.

    Weder das Plugin, noch der Code hat Einfluss auf die Kategorienbeschreibung.

    Der Code ändert zudem auch nirgends die Auszugslänge. Obwohl im Parent-Theme das überschreiben der excerpt_length (durch die Child functions.php) möglich ist.

    Auch der Code (zusammengebastelt aus deinem Tipp und dem aus der Referenz) funzt nicht:

    add_filter( 'excerpt_length', 'category_excerpt_length', 999 );
    function category_excerpt_length( $length ) {
      if ( is_category () ) {
        return 100;
      }
      return $length;
    }
    Moderator Bego Mario Garde

    (@pixolin)

    Danke fürs Suchen, bin eben auch dabei, fand aber nichts.

    Dieser Code ist meinen laienhaften Versuchen (Erfolg: 25%) ähnlich, funzt aber schon zu 50%. Denn:
    Wenn man die Kategorie (deren Beschreibung nun echt als Teaser kommt!) aus dem „Read More“ Link aufruft, wird sie natürlich wieder verkürzt dargestellt.

    Hier müsste man evtl. einen Parameter mitgeben, der besagt: Du bist jetzt nicht auf dem normalen Weg aufgerufen worden, sondern von dem weiterlesen Link. Oder so …

    So, das klappte!

    Hab einfach den Parameter „rm=1“ an den Link zur Kategorie angehängt und nach der pos. Abfrage ob rm nicht 1 ist, wird gekürzt. 1 ist nur da, wenn eben vom „Read More“ Link aufgerufen. Nicht aber wenn die Kategorie übers normale Menü aufgerufen wird.

    add_filter( 'category_description', 'cyb_trim_category_desc', 10, 2 );
    function cyb_trim_category_desc( $desc, $cat_id ) {
      if ($_GET["rm"]!=1) {
        $desc = wp_trim_words( $desc, 55, '<a href="' . get_category_link( $cat_id ) . '?rm=1">' . __("Read more", "text-domain" ) . '</a>' );
      }
        return $desc;
    }

    Die Sache ist nun zu 95% gelöst.
    Denn ich habe nun noch den Auszugslängen-Wert, welcher per Customizer gewählt wird, gefunden und die Var ausgelesen.
    Ebenso die dort eingestellten Zeichenfolge für den More Link.

    add_filter( 'category_description', 'cyb_trim_category_desc', 10, 2 );
    function cyb_trim_category_desc( $desc, $cat_id ) {
      if ($_GET["rm"]!=1) {
        $desc = wp_trim_words( $desc, magazine_excerpt_length($length), '<a href="' . get_category_link( $cat_id ) . '?rm=1">' . magazine_excerpt_more() . '</a>' );
      }
        return $desc;
    }

    Bleibt nur die zweiteilige Frage zum Code von https://wordpress.stackexchange.com/questions/202489/how-to-customize-category-description/202491#202491:
    1.) Warum tut der zwei Unterstriche „__“ vor „Read More“?
    Hab die weggelöscht, für was soll das gut sein – und Fehler! (syntax error, unexpected ‚,‘ in )
    2. Was ist mit „text-domain“ gemeint?

    Moderator Bego Mario Garde

    (@pixolin)

    __( 'Read more …', 'irgendwas' ) ist eine Übersetzungsfunktion, die den Textstring Read more … in der Übersetzung zurückgibt (return), die für die Text-Domain irgendwas vorhanden ist. Text-Domain ist eine Ursprungsangabe für die Übersetzung, damit für unterschiedliche Plugins und Themes (besonders bei Wörtern mit unterschiedlicher Bedeutung, etwa „bank“ einmal übersetzt als „Finanzinstitut“, einmal als „Sitzbank“, einmal als „Ufer, Böschung, Gewässerrand“) konzextbezogen richtige Übersetzungen verwendet werden.

    vgl. https://developer.wordpress.org/reference/functions/__/ und https://developer.wordpress.org/themes/functionality/internationalization/

    Das mit der Übersetzung hab ich jetzt nicht ganz gecheckt.

    Aber wurst, bin froh das eigentliche Prob gelöst zu haben – Danke!

    Moderator Bego Mario Garde

    (@pixolin)

    Ja, genau … lass andere ruhig eine ausführliche Erklärung tippen – wurst, Hauptsache „Prob gelöst“.

    Soviel zum Thema „wie motiviere ich andere Menschen, mir künftig in ihrer Freizeit nicht mehr zu helfen“.

    @pixolin:
    1.) Ich bedanke mich eigentlich fast in jedem Beitrag für Deine und die Hilfe anderer hier.

    2.) Vielen Danke für diese Erklärung. Ich habe sie leider nicht kapiert, was an mir liegt.

    3.) Ich wollte das Thema „Übersetzung“ auch nicht vertiefen, sondern ggf. mal einen eigenen Beitrag/Frage zT. zu eröffnen.
    Ansonsten dachte ich, kommt der Hinweis, eben das nicht in einem Thread zu vermischen.

    4.) Nochmals auch Danke fürs Helfen bez. der eigentlichen Problemstellung! Das war mir wichtig, das konnten wir lösen. Und ich glaube ich habe mir die Lösung nicht zu 100% vorarbeiten lassen, sondern ganz brav meine eigenen Gedanken dazu umgesetzt.

    5.) Ich hab hier auch schon geholfen, meist öffentlich lesbar. Habe auch schon haarsträubende oder gar keine Antworten bekommen. Aber auch mal Dankesworte.
    Tut mir leid, wenn meine vorige Antwort so kurz und undankbar erschien. So war es nicht gemeint!

    Moderator Bego Mario Garde

    (@pixolin)

    Schon recht …

    Es ist nur etwas frustrierend, wenn du dir die Mühe machst, etwas zu erklären, Links zur Dokumentation raussuchst und dann ein „… aber trotzdem Danke“ zurück kommt. Aber über persönliche Befindlichkeiten wollten wir ja eigentlich auch gar nicht diskutieren. Mein Fehler, dass ich’s erwähnt hab.

Ansicht von 11 Antworten - 1 bis 11 (von insgesamt 11)