Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Så här trunkerar du automatiskt titlar på blogginlägg i WordPress

Vill du lära dig hur man förkortar titlar på post med PHP?

Trunkering, eller förkortning, låter dig kontrollera längden på titlarna på dina blogginlägg på hela din website. Beroende på ditt WordPress-tema kanske du vill visa kortare titlar än vad ditt theme har support för.

I den här artikeln kommer vi att visa you hur man trunkerar titlar på post i WordPress.

How to Automatically Truncate Blog Post Titles in WordPress

Varför avkorta rubriker i WordPress med PHP?

Att trunkera rubriker i WordPress med PHP ger dig mer control över längden på dina posters rubriker och hur de visas på din website.

Till exempel kanske du vill klippa bort långa rubriker på din homepage så att de inte stör designen på din WordPress blogg.

Truncate posts example

Note: Vissa användare vill helt enkelt använda kortare inläggstitlar för att optimera blogginlägg för sökmotorsoptimering. I det här fallet behöver du inte förkorta titlarna på posterna. Istället kan du helt enkelt använda ett WordPress sökmotorsoptimering plugin för att göra din title tag kortare.

Ett sökmotorsoptimeringsplugin låter dig skapa custom SEO-titlar för sökresultatsidorna medan du fortfarande behåller längre posttitlar för dina besökare på din site.

För mer detaljer, se vår ultimata guide om hur du ställer in All in One SEO korrekt.

Med det sagt, låt oss visa dig hur du kan förkorta WordPress rubriker på din website genom att använda två olika metoder:

Metod 1: Avkorta WordPress publicerade rubriker med en WordPress-funktion

Det enklaste sättet att trunkera rubriker på WordPress-poster i WordPress är genom att lägga till PHP-kod i dina WordPress-filer. Om du inte har gjort det tidigare kan du kontrollera vår guide om hur man copy and paste kod i WordPress.

Många tutorials kommer att säga till you att add code directly to your theme’s functions.php file. Eventuella error kan dock orsaka en rad olika WordPress-fel eller till och med förstöra din webbplats.

Det är därför vi rekommenderar att du använder det gratis pluginet WPCode istället, följ vår guide om hur du lägger till custom code i WordPress.

Först måste du installera och aktivera det gratis pluginet WPCode. Om du behöver hjälp med detta, vänligen se vår Step-by-Step guide om hur du installerar ett WordPress plugin.

När du är aktiverad väljer du Code Snippets ” + Add Snippet från din admin sidebar. Därefter hoverar du musen över alternativet ”Add Your Custom Code (New Snippet)” och klickar sedan på knappen ”Use snippet” som visas.

Adding Custom Code in WPCode

Detta kommer att öppna en new page där du kan skriva en titel för snippet och sedan lägga till koden.

Det är bara att copy and paste in följande kod i rutan Code Preview i WPCode.

function max_title_length( $title ) {
$max = 35;
if( strlen( $title ) > $max ) {
return substr( $title, 0, $max ). " …";
} else {
return $title;
}
}

add_filter( 'the_title', 'max_title_length');
Truncating Headlines Using WPCode

Denna kod kommer att köras inuti din WordPress-postloop och förkorta titlarna på dina blogginlägg till ’35’ tecken. För att ändra längden på din titel, ställ bara in $max-variabeln till din önskade titellängd.

Därefter måste du välja ”PHP Snippet” från rullgardinsmenyn Code Type.

Slutligen måste du toggle Activate-inställningen på och sedan spara snippet genom att klicka på knappen ”Save Snippet”.

Truncating Headlines Using WPCode

Nu när code snippet är aktivt kommer titlarna på dina blogginlägg att förkortas var de än dyker upp på din WordPress website.

Metod 2: Trunkera WordPress Post Titles med PHP genom att ändra WordPress Theme Files

Ett annat sätt att förkorta rubriker på WordPress-poster är genom att lägga till kod direkt i filerna för ditt WordPress-tema.

Den här metoden ger dig mer control över var dina titlar förkortas. Till exempel kanske du vill förkorta titlar endast på din homepage men visa titeln i full längd på blogginlägget.

För att göra det måste du add to PHP-koden direkt till WordPress temafiler där du vill förkorta titlarna på dina blogginlägg.

Du kan till exempel add to code snippet under till din index.php-fil för att ersätta den befintliga the_title taggen i din WordPress post loop för att ändra titellängden på hela webbplatsen:

<a href="<?php the_permalink() ?>">
<?php
$thetitle = $post->post_title; /* or you can use get_the_title() */
$getlength = strlen($thetitle);
$thelength = 25;
echo substr($thetitle, 0, $thelength);
if ($getlength > $thelength) echo "...";
?>
</a>

Den här koden ställer in längden på titeln på posten till 25 tecken. Om titeln är längre än 25 tecken kommer den att klippa av titeln efter 25 tecken och add to en ellips ’…’ i slutet.

Om du vill ändra teckenlängden för din website ändrar du bara variabeln $thelength till önskat antal tecken.

När du har addat koden och saved din fil måste du uploada den till din theme directory på ditt WordPress webbhotell account.

Du kan göra detta genom att använda en FTP-klient eller filhanteringsverktyget i din kontrollpanel på webbhotellet WordPress. Om du inte har använt FTP tidigare kan du kontrollera vår guide om hur du använder FTP för att uploada filer till WordPress.

När koden har addats kommer titlarna på dina post att förkortas till det teckenantal du har angett.

Pro Tips: Om du använde metod 2 kommer du att förlora dessa ändringar när du uppdaterar ditt theme till en new version. För att undvika detta, se vår guide om hur du uppdaterar ditt WordPress theme utan att förlora customize.

Vi hoppas att den här artikeln hjälpte dig att lära dig hur du avkortar WordPress-posters rubriker med PHP. Du kanske också vill se vår guide om hur man skriver ett bra blogginlägg och våra expertval av de bästa schema markup-tilläggen för WordPress.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Avslöjande: Vårt innehåll stöds av våra läsare. Det innebär att om du klickar på några av våra länkar, kan vi tjäna en provision. Se hur WPBeginner finansieras, varför det är viktigt, och hur du kan stödja oss. Här är vår editoriala process.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Den ultimata WordPress-verktygslådan

Få GRATIS tillgång till vår verktygslåda - en samling WordPress-relaterade produkter och resurser som varje professionell användare bör ha!

Reader Interactions

21 kommentarerLämna ett svar

  1. Syed Balkhi

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. dustinporchia

    This is golden!….Thanks wpbeginner!

  3. Junaid

    Sweet! was just looking for a clients project

  4. Marco

    Does anybody know how the link title of previous_post_link(); could be truncated?

    thanks

  5. Brow

    Thanks this worked perfectly! I didn’t want to end up using a plugin just to do this and was happy your code cut down the titles properly.

    Thanks again!

  6. Joey Figaro

    Hey there – thanks for writing this up! I happened to stumble upon another example of how to achieve this and it seemed a lot more simple, so I will share it with you and see what you think.

    functions.php:

    function new_excerpt_length($length) {
    return 100;
    }
    add_filter(’excerpt_length’, ’new_excerpt_length’);

    • Editorial Staff

      These are two entirely different concepts…. The one you recommend is for post excerpts whereas the one we are talking about is for Post Titles.

      Administratör

  7. Lena

    Hi!
    This doesn’t work if you use other languages than english. My swedish titel looks awful because the code doesn’t translate å ä and ö comparing to the default code. Any suggestions of what I have to do? This is a good trick and i want to use it.

    Kindly Lillan

    • Editorial Staff

      Hmm… that does sound like a serious issue. Wondering if you can specify the language via PHP, so it counts characters in that instead of english.

      Administratör

      • Alex

        You might wanna try to specify a different charset, check Latin1 or utf8 i think they contain those chars as well.. I had some similar issues recently since my first language is german :)

    • Editorial Staff

      We appreciate your work for the community. Thanks for the nice snippet :)

      Administratör

  8. Navjot Singh

    One Suggestion, this type of code should be included in functions.php and not index.php. You can use conditional tags to restrict the code to any page you want whether its the homepage or any other page where you want.

    • Editorial Staff

      This is just for specific areas… But yes, it can be customized and placed in functions.php

      Administratör

  9. Thomas Scholz

    Don’t use strlen(). Use mb_strlen() or strlen(utf8_decode($str)) or you risk to truncate the string inside of a multi-byte character. The same applies to mb_substr().

    Oh, and an ellipsis is one character: … :)

    • snipsley

      Thanks!! mb_strlen() a mb_substr solved my encoding problem. I’ve been looking for this for hours!

    • Lena Backstedt

      BIG tnx!
       
      mb_strlen() also seems to work for the swedish language (so far I can see)

Lämna ett svar

Tack för att du väljer att lämna en kommentar. Tänk på att alla kommentarer modereras enligt våra policy för kommentarer, och din e-postadress kommer INTE att publiceras. Vänligen använd INTE nyckelord i namnfältet. Låt oss ha en personlig och meningsfull konversation.