Оставайтесь в курсе обновлений: Сообщения | Комментарии

« %ссылка
%ссылка »
  • 13 июля 2010 - Автор БезМозгоFF

    В WordPress, как оказалось, нет штатных средств чтобы вывести из определенного поста только текст и только определенное количество символов с обрезкой до слова.

    the_content() – выводит весь контент из поста, включая форматирование, картинки итд

    the_excerpt() – выводит значение поля “цитата” – анонс поста, либо если анонса нет, то выводятся фиксированное число слов – первые 55 слов.

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

    Функцию просто добавьте в functions.php своей темы и используйте в цикле при выводе постов.

    function themefunction_content($max_char,$more_link_text='(more...)',
     $stripteaser=0,$more_file='') {
     $content = get_the_content($more_link_text, $stripteaser, $more_file);
     $content = apply_filters('the_content', $content);
     $content = str_replace(']]>', ']]>', $content);
     $content = strip_tags($content);
    
     if (strlen($content)>$max_char) 
    
     {$space = strpos($content," ",$max_char);
    
     if (strlen($_GET['p']) > 0) {
     echo "<p>";
     echo $content;
     echo "&nbsp;<a href='";
     the_permalink();
     echo "'>"."Read More &rarr;</a>";
     echo "</p>";
     } else if ((strlen($content)>$max_char) && $space) {
     $content = substr($content,0,$space);
     $content = $content;
     echo "<p>";
     echo $content;
     echo "...";
     echo "&nbsp;<a href='";
     the_permalink();
     echo "'>".$more_link_text."</a>";
     echo "</p>";
     } else {
     echo "<p>";
     echo $content;
     echo "&nbsp;<a href='";
     the_permalink();
     echo "'>"."Read More &rarr;</a>";
     echo "</p>";
     }
     } else {
     $content = substr($content,0,strpos($content,"Популярность"));
     echo "<p>";
     echo $content;
     echo "...";
     echo "&nbsp;<a href='";
     the_permalink();
     echo "'>".$more_link_text."</a>";
     echo "</p><br>";
    
     }
    }

    Вот и все) Вызываем, например, так <?php themefunction_content(500,’далее’);?> где 500 – количество символов. Результат работы приводить не буду, думаю и так все понятно.

  • Один комментарий к “Вывод отфильтрованного текста в WordPress”

    • Pirat on 14 июля 2010

      Вот спасибо! То, что нужно. Я как раз себе сборочку WordPress собираю. Избавляюсь от всего лишнего, оптимизирую ну и т.п. В общем спвасибо еще раз.

    Написать ответ