Розпродаж хостинг-планів на неймовірних умовах!
Знижка від 300 до 500грн!
Як обрізати довгий заголовок (title)?

Зверніть увагу: ця публікація побачила світ більше року тому, з того часу багато чого могло змінитися ;)

Досить часто, особливо у шаблонах “журнального” типу, на головній сторінці відображається велика кількість записів. При цьому кожен запис займає маленьку площу.
В таких випадках не має місця довгим заголовкам статей. Але що робити, коли вони такі потрібні?

Якщо довжина заголовку або тайтлу ваших записів на WordPress блозі має не перевищувати якусь визначену кількість символів, Ви можете скористатися наступною функцією у Вашому шаблоні:
Дякуємо за код codezroz.com

//Можна використовувати у шаблонах на зразок - index.php, single.php та інш.
<a href="<?php the_permalink() ? target="_blank" rel="nofollow">">
<?php
$thetitle = $post->post_title; /* або функція get_the_title() */
$getlength = strlen($thetitle); // визначаємо довжину
$thelength = 25; // бажана довжина
echo substr($thetitle, 0, $thelength); //обрізаємо
if ($getlength > $thelength) echo "..."; //якщо оригінальна довжина була більше бажаної, додаєм три крапки ...
?>
</a>

Дмитро Кондрюк

Автор публікації

Share a little biographical information to fill out your profile. This may be shown publicly.

Є що відповісти?

Your email address will not be published.

Можна скористатися такими тегами в тексті:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

  • 29.10.2010 at 11:29

    З даним кодом дві проблеми, перша він ігнорує пропуски а так як кількість слів різна то заголовки виходять різної довжини, друга те що він деякі символи перед обрізанням перетворює в ромби на зразок \”жи?…\”. Якщо перша проблема не дуже важлива то друга критична.

    • Я не зовсім зрозумів щодо \”пропусків\”. Функція substr повертає Х символів (в нашому випадку Х = 25) від початку строки. Якщо пробіл – в Вашій інтерпретації є пропуском, то він теж має враховуватись. В результаті маємо отримати 25 символів заголовку + три крапки, або повний заголовок, якщо його довжина менша за 25 символів.

      Щодо ромбів, то це проблема substr, оскільки ця функція не коректно працює з кирилічним текстом у кодуванні UTF-8. Для виправлення потрібно substr замінити на mb_substr, має допомогти. Але mb_substr не на всіх хостингах працює.

      • 29.10.2010 at 16:44

        Під пропусками я мав на увазі пробіли, чомусь здалось що це російськомовне слово, хоча насправді ні :), на практиці ж заголовки чомусь різної довжини, порахував пробіли дійсно вони тут ні при чому. mb_substr допоміг дякую.

        • Ілюзію можуть створювати різні розміри літер. тобто, якщо Ви створите два заголовки, один з 10 літер \”і\”, інший з 10 літер \”ж\”, то візуально вони будуть різної довжини