Превью для страницы

Есть сайт на ВП, он полностью построен на страницах (без постов). И вот есть такая задача – сделать вывод названия станцы и ее краткого описания (первые 100 символов статьи), и сделать это надо циклом для страниц, которые подчинены одной конкретной странице.

Т.е. есть:

Страница 1

  • Страница 1.1
  • Страница 1.2
  • Страница 1.3

Надо сделать вывод таким образом:

Страница 1.1
Первый 100 символов

Страница 1.2
Первый 100 символов

Страница 1.3
Первый 100 символов

Для постов это все делается без всяких проблем, а можно ли такое сделать для страниц? Может есть какой-то плагин?

Для постов это все делается без всяких проблем, а можно ли такое сделать для страниц?

А на этапе проектирования этот вопрос у Вас не возникал? 🙂

Вам сюда http://codex.wordpress.org/Function_Reference/get_pages

А на этапе проектирования этот вопрос у Вас не возникал? :)

У меня нет, это не я делал, я уже разбираю последствия 🙂

Вам сюда http://codex.wordpress.org/Function_Reference/get_pages

Спасибо, буду разбираться

А вот и решение:

В функции добавляем (это чтоб можно было вывести определенное количество символов):

function announce($text, $announce_length = 120)
{
 $text = trim(strip_tags($text, '<br>'));
 if (!$text) return;
 $a = preg_split('/ +/', $text, -1, PREG_SPLIT_OFFSET_CAPTURE);
 $ret = '';
 foreach ($a as $val)
 {
  if ($val[1] + strlen($val[0]) >= $announce_length) break;
  $ret .= (' '.$val[0]);
 }
 return $ret.(strlen($ret)<strlen($text)?'...<b>&raquo;</b>':'');
}

Теперь можем вывести страницы вот таким образом:

<?php
$pages_new = get_pages('child_of='.$post->ID.'&sort_column=post_date&sort_order=desc');
foreach ($pages_new as $page_new):
echo '<a href="';
echo get_page_link($page_new->ID);
echo '">';
echo $page_new->post_title;
echo '</a>';
echo announce($page_new->post_content, 100);
endforeach;
?>

Ю.Б. Спасибо за подсказку!

Anonymous
Отправить
Ответ на: