Chcesz dowiedzieć się jak przycinać tytuły wpisów za pomocą PHP?
Obcinanie lub skracanie pozwala kontrolować długość tytułów twoich wpisów na blogu w witrynie internetowej. W zależności od Twojego motywu WordPress, możesz chcieć wyświetlać krótsze tytuły niż te, które są przez niego obsługiwane.
W tym artykule pokażemy, jak skrócić tytuły wpisów w WordPressie.
Dlaczego warto skracać tytuły wpisów w WordPressie za pomocą PHP?
Skracanie tytułów wpisów w WordPressie za pomocą PHP daje większą kontrolę nad długością twoich wpisów i sposobem ich wyświetlania na witrynie internetowej.
Na przykład, możesz chcieć odciąć długie wpisy na stronie głównej, aby nie zaburzały wyglądu twojego bloga WordPress.
Uwaga: Niektórzy użytkownicy chcą po prostu używać krótszych tytułów wpisów, aby zoptymalizować wpisy na blogu pod kątem SEO. W takim przypadku nie trzeba skracać tytułów wpisów. Zamiast tego możesz po prostu użyć wtyczki WordPress SEO, aby skrócić twój tag tytułowy.
Wtyczka SEO pozwoli ci tworzyć własne tytuły SEO dla stron wyników wyszukiwania, jednocześnie zachowując dłuższe tytuły wpisów dla odwiedzających twoją witrynę.
Aby uzyskać więcej informacji, zapoznaj się z naszym przewodnikiem na temat prawidłowej konfiguracji All in One SEO.
Mając to na uwadze, pokażemy ci, jak skrócić tytuły wpisów WordPress na twojej witrynie internetowej za pomocą dwóch różnych metod:
Metoda 1: Obcinanie tytułów wpisów WordPressa za pomocą funkcji WordPressa
Najprostszym sposobem na skrócenie tytułów wpisów w WordPressie jest dodanie kodu PHP do twoich plików WordPress. Jeśli nie robiłeś tego wcześniej, zapoznaj się z naszym przewodnikiem na temat kopiowania i wklejania kodu w WordPress.
Wiele poradników mówi, aby dodać kod bezpośrednio do pliku functions. php twojego motywu. Jednak wszelkie błędy mogą spowodować szereg błędów WordPressa, a nawet zepsuć twoją witrynę.
Dlatego zamiast tego zalecamy korzystanie z darmowej wtyczki WPCode, postępując zgodnie z naszym przewodnikiem na temat dodawania własnego kodu w WordPress.
Najpierw należy zainstalować i włączyć darmową wtyczkę WPCode. Jeśli potrzebujesz pomocy w tym zakresie, zapoznaj się z naszym przewodnikiem krok po kroku, jak zainstalować wtyczkę WordPress.
Po włączaniu, wybierz Code Snippets ” + Add Snippet z panelu bocznego administratora. Następnie najedź kursorem myszy na opcję „Add Your Custom Code (New Snippet)”, a następnie kliknij przycisk „Use snippet”, który się pojawi.
Spowoduje to otwarcie nowej strony, na której można wpisać tytuł fragmentu kodu, a następnie go utworzyć.
Wystarczy skopiować i wkleić poniższy kod do panelu podglądu kodu w 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');
Ten kod wykona się wewnątrz pętli wpisów WordPress i skróci tytuły twoich wpisów na blogu do „35” znaków. Aby zmienić długość twojego tytułu, po prostu ustaw zmienną $max
na preferowaną długość tytułu.
Następnie należy wybrać „Fragment kodu PHP” z rozwijanego menu Rodzaj kodu.
Na koniec należy włączyć ustawienie Aktywny, a następnie zapisać fragment kodu, klikając przycisk „Zapisz fragment kodu”.
Teraz, gdy fragment kodu jest włączony, tytuły twoich wpisów na blogu zostaną skrócone wszędzie tam, gdzie pojawią się na twojej witrynie internetowej WordPress.
Metoda 2: Obcinanie tytułów wpisów w WordPressie za pomocą PHP poprzez zmianę plików motywu WordPressa
Innym sposobem na skrócenie tytułów wpisów WordPress jest dodanie kodu bezpośrednio do plików twojego motywu WordPress.
Ta metoda daje większą kontrolę nad tym, gdzie twoje tytuły są skracane. Na przykład, możesz chcieć skrócić tytuły tylko na twojej stronie głównej, ale wyświetlać pełnowymiarowy tytuł we wpisie na blogu.
Aby to zrobić, musisz dodać kod PHP bezpośrednio do plików motywu WordPress, w których chcesz skrócić tytuły twoich wpisów na blogu.
Na przykład, możesz dodać poniższy fragment kodu do pliku index.php
, aby zastąpić istniejący tag the_title
wewnątrz pętli twojego wpisu WordPress, aby zmienić długość tytułu w całym serwisie:
<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>
Ten kod ustawia długość tytułu wpisu na 25 znaków. Jeśli długość tytułu jest dłuższa niż 25 znaków, tytuł zostanie obcięty po 25 znakach i na końcu zostanie dodany wielokropek „…”.
Aby zmienić długość znaków dla twojej witryny internetowej, po prostu zmień zmienną $thelength
na preferowaną liczbę znaków.
Po dodaniu kodu i zapisaniu twojego pliku, musisz przesłać go do katalogu motywu na twoim koncie hostingowym WordPress.
Możesz to zrobić za pomocą klienta FTP lub narzędzia do zarządzania plikami w twoim panelu sterowania hostingu WordPress. Jeśli nie korzystałeś wcześniej z FTP, zapoznaj się z naszym przewodnikiem na temat korzystania z FTP do przesyłania plików do WordPress.
Po dodaniu kodu tytuły twoich wpisów zostaną obcięte do ustawionej liczby znaków.
Pro Tip: Jeśli użyłeś metody 2, utracisz te zmiany, gdy zaktualizujesz swój motyw do nowej wersji. Aby tego uniknąć, zapoznaj się z naszym przewodnikiem na temat aktualizacji twojego motywu WordPress bez utraty konfiguratora.
Mamy nadzieję, że ten artykuł pomógł ci dowiedzieć się, jak skrócić tytuły wpisów WordPress za pomocą PHP. Zachęcamy również do zapoznania się z naszym przewodnikiem na temat pisania świetnych wpis ów na blogu i wyborem najlepszych wtyczek Schema Markup dla WordPressa.
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.
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!
Achintha
Hey There is a wordpress function for limit words. Better to use that.
http://codex.wordpress.org/Function_Reference/wp_trim_words
dustinporchia
This is golden!….Thanks wpbeginner!
adm_mnz
If you use mb_substr there is a parameter for encoding.
http://php.net/manual/en/function.mb-substr.php
Junaid
Sweet! was just looking for a clients project
Marco
Does anybody know how the link title of previous_post_link(); could be truncated?
thanks
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!
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.
Administrator
Joey Figaro
Wow, that’s embarrassing.
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.
Administrator
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
Thank you for helping out Alex
Ben Kulbertis
Thanks for the Trackback!
Editorial Staff
We appreciate your work for the community. Thanks for the nice snippet
Administrator
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
Administrator
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)