WooCommerce product titel inkorten

Past de titel in je WooCommerce product matrix niet? Zo pas je het aan.

Wil je direct een mail ontvangen wanneer nieuwe snippets zijn toegevoegd?

Vul dan onderstaand formulier in en je krijgt direct na het toevoegen van nieuwe snippets een email. Zo blijf je altijd bij!

Eén van de meest terugkerende problemen met WooCommerce is de ‘ongelijkheid’ in de hoogte van producten in een matrixoverzicht. En daar valt eigenlijk heel weinig aan te doen.

Je kan er iets aan sleutelen, door ervoor te zorgen, dat de ruimte voor de product titel een bepaalde hoogte heeft, zodat de meeste titels wel zullen passen, maar zodra je ook maar één product titel per ongeluk iets te lang invult, dan ligt je hele layout weer overhoop.

Eén manier om dat tegen te gaan is door automatisch te lange titels in te korten. En dat is eigenlijk best eenvoudig om te doen. Je kan dit inkorten op basis van het aantal tekens, of op basis van het aantal woorden laten doen. Ik zal je beide opties laten zien.

Inkorten op basis van het aantal tekens

Inkorten op basis van het aantal tekens levert over het algemeen de beste resultaten op. Hoewel tekens niet allemaal even breed zijn, kom je meestal toch wel uit op een aardige gemiddelde breedte. Met woorden is het lastiger om toch nog een ‘sprekende’ ingekorte titel te krijgen.

Laten we eens naar de code kijken op basis van het aantal tekens:

<?php 
add_filter( 'the_title', 'wxp_shorten_woo_product_title',80,2);
 
function wxp_shorten_woo_product_title( $title, $id ) {
   if ( is_shop() && get_post_type( $id ) === 'product' ) {
      return substr( $title, 0, 15 ); 
   } else {
      return $title;
   }
}

De regels 5 en 6 wil ik even graag wat toelichten.

De functie is_shop() op regel 5 test of de pagina waarvoor de filter wordt aangeroepen een ‘shop’ page is, of met andere woorden een pagina met een productoverzicht. Want we willen natuurlijk de titel alleen voor die pagina’s inkorten, niet voor de enkelvoudige productpagina.

De functie ‘substr($title,0,15)’ op regel 6 kort de titel in op 15 tekens. Omdat PHP bij lengte van dingen vaak bij 0 begint te tellen, betekent deze functie dus : Begin bij ‘$title’ op positie 0 (eerste letter) en neem vandaar vandaan 15 tekens’.

Wil je de titel langer hebben, dan moet je dus gewoon het aantal tekens verhogen, ofwel van 15, 20 of 30 of welke door jou gewenste lengte dan ook maken.

Maar hoe doen we het, als we een aantal woorden willen laten zien.

Inkorten op basis van het aantal woorden

Inkorten op basis van het aantal woorden is vaak niet de beste oplossing. Want stel je voor, dat je boeken zou verkopen. Een titel als ‘De man die zijn haar kort liet knippen’ en ‘Scheherazade’s verhalen uit duizend en één nacht’ zien er afgekort op vier woorden respectievelijk als volgt uit :

  • De man die zijn
  • Scheherazade’s verhalen uit duizend

Toch wel een heel substantieel lengteverschil, nietwaar? En bovendien is de eerste titel toch wel heel nietszeggend.

<?php 
add_filter( 'the_title', 'wxp_shorten_woo_product_title',80,2);
 
function wxp_shorten_woo_product_title( $title, $id ) {
   if ( is_shop() && get_post_type( $id ) === 'product' ) {
      return wp_trim_words($title, 4); 
   } else {
      return $title;
   }
}

De functie ‘wp_trim_words’ op regel 6 heeft twee parameters, de titel en het aantal woorden waarna afgekort moet worden.

Mag de titel ook op 1 regel?

Beide bovengenoemde oplossingen zijn goed, wanneer wilt, dat een titel ook op meerdere regels komt te staan. Wil je de lengte van de titel standaard tot 1 regel beperken, dan heb je helemaal geen PHP code nodig, maar kan je dit ook met CSS oplossen. Plaats onderstaand codefragment in de ‘Custom CSS’ sectie van je thema, of in de style.css van je child theme :

.woocommerce ul.products li.product h3 {
   overflow: hidden;
   text-overflow: ellipsis;
   white-space: nowrap;
}

Wat je hier regel voor regel zegt is

  1. Voor de volgende acties selecteer ik de ‘h3’ (de titel) van de producten in de WooCommerce producten matrix.
  2. Op het moment dat iets niet past, moet het verborgen worden
  3. Wanneer de tekst te lang is, laat dat zien door 3 puntjes aan het einde (een ellipsis)
  4. Als de tekst niet past, begin geen nieuwe regel.

Wil je inderdaad de titel slechts op één regel hebben, is de laatste oplossing de beste. Omdat het minder capaciteit van de server vergt.

Codesnippet verbeteren

Het doel van deze code snippet is een probleem op te lossen in een specifieke situatie. Daarom zie je regelmatig voorbeelden waar je specifiek tekst moet aanpassen om te krijgen wat je wilt. 

Wil jij leren hoe je complete plugins zelf kunt programmeren inclusief ‘admin’ schermen voor het instellen en de output in de gewenste taal, dan is misschien de cursus ‘Introductiecursus Plugins Programmeren‘ iets voor jou. 

Wil je als ‘full stack’ WordPress programmeur aan de gang gaan, dan biedt WordXPression ook een compleet traject ‘WordPress Developer‘ aan. Dit is een traject wat deels online, deels klassikaal wordt gegeven.

WordPress Developer worden?

Wil je leren hoe je zelf plugins, thema's, shortcodes, widgets, Gutenberg blocks en meer kan maken?
Schrijf je dan in voor de cursus WordPress Developer.

Meer snippets

Een veld toevoegen in WooCommerce bestellingen
Hoe voeg je extra velden toe aan je WooCommerce checkout procedure?
Maak WP Courseware lessen zichtbaar in Elementor
Standaard kan Elementor Pro jouw WP Courseware Units niet vinden. Zo los je dit op.
Een 'Niet op voorraad' knop in WooCommerce
Hoe voorkom je teleurstelling bij je klant wanneer hij zijn favoriete product bij jou vindt, zonder dat...
Een regel tekst boven of onder een blogpost plaatsen
Een standaard regel (of) blok tekst boven of onder je blogpost plaatsen valt eigenlijk best wel mee....
Het aanpassen van je WordPress systeem e-mails
WordPress verstuurt de welkom en de wachtwoord vergeten email vanuit een email adres, wat je niet aan...
Totaalprijs tonen op een WooCommerce Single Product Page
Standaard zal WooCommerce wel het bedrag tonen, maar geen indicatie hoeveel iets kost, wanneer je er...

Veiligheid voor alles!

Met betrekking tot de code die je hier aantreft een aantal waarschuwingen, voordat je deze code snippets toepast op je eigen website.

  1. Voer de code nooit direct uit op je eigen website, maar probeer deze eerst op een staging omgeving of een locale kopie van je website. 
  2. Voor je de geteste code installeert op je website, maak eerst een back up van je website.
  3. Zorg altijd voor alle zekerheid, dat je voor je een aanpassing live zet, je ook de FTP gegevens van je website bij de hand hebt.  
 
Voel je je onvoldoende vertrouwd met het toepassen van een dergelijke code snippet, bedenk dat je dit ook door een professional kan laten doen. De WordXPression support strippenkaart is een voordelige manier om dit soort aanpassingen te laten doen.
Heeft dit artikel je geholpen je probleem op te lossen?
Deel het met je vrienden via je favoriete social media.

Heb je vragen bij, of opmerkingen over deze code snippet, stel deze bij de commentaren hieronder.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Word je website de baas. Neem vandaag nog contact op!

Contact Informatie

Helaas is telefoonspam een serieus probleem geworden. Omdat ik dagelijks tientallen ‘spam’ en ‘scam’ telefoontjes ontving, heb ik mijn telefoonnummer van de site verwijderd. 

Wanneer je echter het formulier hiernaast invult, en aangeeft dat je per telefoon contact op wilt nemen, maak ik graag een belafspraak met je op een moment wat ons beiden past. En krijg je gewoon het telefoonnummer van WordXPression, zodat je ieder moment kan bellen.

WordXPression 

Aardoliestraat 14-I 7553GT Hengelo

KVK : 75580152 

Stuur een bericht

Mocht je interesse hebben in een nieuwe WordPress of WooCommerce website, verzoek ik je niet onderstaand formulier in te vullen, maar gebruik te maken van het intake/offerte formulier

WordXPression is WP Digital Marketing Geworden

In oktober 2010 begon ik met WordXPression. De naam zei eigenlijk precies wat ik toen deed: dienstverlening rond WordPress. Websites bouwen, aanpassen, onderhouden en later ook steeds meer maatwerk ontwikkelen.

Maar WordXPression is in de loop van de jaren nooit alleen WordPress geweest. Voor klanten voerde ik ook andere werkzaamheden uit. Soms kwamen die rechtstreeks voort uit een WordPress-project, bijvoorbeeld wanneer een website gekoppeld moest worden aan een ander systeem. Soms lag de oorsprong heel ergens anders: in mijn jarenlange ervaring als system integrator uit de periode voordat ik met WordXPression begon.

Daarom besloot ik in 2017 de officiële naam van mijn bedrijf te veranderen in WP Digital Marketing. WordXPression bleef daarbij bestaan als handelsnaam en bleef ook de naam waaronder de website en het grootste deel van mijn dienstverlening naar buiten traden.

De afgelopen jaren is die verhouding steeds verder veranderd. Naast WordPress zijn vooral Laravel, maatwerkapplicaties en systeemintegraties een steeds belangrijker deel van mijn werkzaamheden geworden. WordPress blijft belangrijk, maar het is niet langer een goede paraplu voor alles wat ik doe.

Daarom wordt het tijd om de naam die al sinds 2017 boven het bedrijf staat, ook daadwerkelijk centraal te stellen.

Vanaf 1 oktober gaat WordXPression verder als WP Digital Marketing.