Intereting Posts
Как установить статус сообщения в черновик, если он старше, чем сегодня Сброс данных сообщения в предыдущий цикл в вложенных циклах Тема Word.Mo-файла не загружается Пользовательский цикл – вывод метаданных изоляции в зависимости от условий таксономии текущего запроса Самые комментируемые последние 24 часа, неделя, месяц, год и все время – posts_where Условия таксономии заказа wordpress Невозможно вставить подпись в изображение Вставить ссылки на страницы – wp_link_pages () – перед фильтрами на сообщениях Изменить назначение ссылки автора на профиль участника BuddyPress Выпадающий список настраиваемого типа сообщения Определенные функции не определены при вызове формы mu-plugins Как добавить некоторую проверку javascript в форму интерфейса администрирования onsubmit? Добавление значений параметров в виде массива с использованием многоразового блока выбора Страница сообщений WordPress для фильтрации и сортировки клиентов вместе с фильтром категории как найти идентификаторы пользователей всех комментаторов в сообщении

Как я могу показать многостраничный пост как единый, завернутый пост?

Во-первых: это не то же самое, что просто показать многостраничный пост полностью (это сделано довольно тривиально, используя <?php echo apply_filters('the_content', $post->post_content); ?> , FYI!).

Я хочу здесь сделать вывод HTML в моей теме следующим образом:

 <div class="page-1"> <!-- page one content goes here --> </div> <div class="page-2"> <!-- page two content goes here --> </div> <!-- etc --> 

Я не могу понять, как получить содержимое страницы, сгруппированное по <!--nextpage--> pagebreaks. Я могу получить исходный контент (например, перед тем, как был the_content фильтр the_content ), и я полагаю, что я мог бы вручную разделить строку на страницуbreakbreak и, возможно, затем применить фильтр к каждой странице, но мне интересно, есть ли лучший способ?

Solutions Collecting From Web of "Как я могу показать многостраничный пост как единый, завернутый пост?"

Поскольку, похоже, нет никакого способа сделать это, вот мое решение. Он просто разбивает содержимое на теге pagebreak, анализирует HTML и обертывает каждую страницу в div:

 function get_paginated_post($post) { $pagebreak = '<!--nextpage-->'; $raw_post = $post->post_content; $pages = explode($pagebreak, $raw_post); $html = ''; foreach ($pages as $p=>$page) { $html .= '<div class="page-' . ($p+1) . '">' . apply_filters('the_content', $page) . '</div>'; } return $html; } 

Не красиво, но делает работу.