Вывод отфильтрованного текста в Wordpress

Автор: БезМозгоFF  //  Категория: wordpress, Новичкам

В 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 – количество символов. Результат работы приводить не буду, думаю и так все понятно.

 Страница 1 из 1  1