Функция Php, ограничивающая количество передаваемых символов - PullRequest
1 голос
/ 29 июля 2010

У меня есть определенное количество символов, которые я могу разместить в месте, где я хочу отобразить категорию. Поэтому мне было интересно, есть ли способ ограничить количество символов, которые эта функция может выводить.

Я хочу ограничить вывод этой функции:

<?php the_category(', ') ?>
outputs: WordPress, Computers, Blogging

Примерно так:

<?php char_limit(the_category(', '), 14, '...') ?>
outputs: WordPress, Com...

Я новичок в php и wordpress, так что поможет краткое руководство по выполнению.

Ответы [ 6 ]

4 голосов
/ 29 июля 2010

комментарий webdestroya и перечитывание вопроса заставляют меня предложить substr_replace () :

echo substr_replace(the_category(', '),"...",14);

Я изначально предложил word_wrap () , который не усекается.

2 голосов
/ 29 июля 2010

См. Функцию substr.

1 голос
/ 29 июля 2010

Вы можете использовать подстроку для создания усеченной функции

function truncate ($str, $length=10, $trailing='...')
{
/*
** $str -String to truncate
** $length - length to truncate
** $trailing - the trailing character, default: "..."
*/
      // take off chars for the trailing
      $length-=mb_strlen($trailing);
      if (mb_strlen($str)> $length)
      {
         // string exceeded length, truncate and add trailing dots
         return mb_substr($str,0,$length).$trailing;
      }
      else
      {
         // string was already short enough, return the string
         $res = $str;
      }
 
      return $res;
 
}

получил от здесь

0 голосов
/ 30 июля 2010

Если вы посмотрите, что такое the_category, это просто функция-обертка:

function the_category( $separator = '', $parents='', $post_id = false ) {
    echo get_the_category_list( $separator, $parents, $post_id );
}

Просто используйте что-то вроде этого:

$catList = get_the_category_list(', ');
if(strlen($catList)>14)
     $catList = substr($catList,0,14) . "&#8230;";
0 голосов
/ 29 июля 2010

Вы можете использовать отрывок из своего поста - есть поле, которое вы можете заполнить и показать чем-то более значимым, чем только первые x символов

вот ссылка, которая объясняет, что такое выдержка: http://codex.wordpress.org/Excerpt

вот ссылка на функцию http://codex.wordpress.org/Function_Reference/the_excerpt

В основном вы можете использовать: <?php the_excerpt(); ?>

или в вашем случае:

<?php if ( is_category() || is_archive() ) {
    the_excerpt();
} else {
    the_content();
} ?>

Вы можете контролировать длину выдержки, используя это:

function new_excerpt_length($length) {
    return 20;
}
add_filter('excerpt_length', 'new_excerpt_length');

Если вы не хотите использовать идею выдержки, вы все равно можете пойти по старому пути:

<?php
$string =  get_the_content('');
$newString = substr($string, 0, 20);
echo $newString;
?>

Надеюсь, что помогло:)

Вы также можете взглянуть на плагины

0 голосов
/ 29 июля 2010

это вам поможет, с многоточием

function shorten ($str, $len)
{
    if (strlen($str) > $len) 
    {
        return substr($str, 0, $len) . "...";
    else
    {
        return $str;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...