Фильтр WordPress для изменения заключительного вывода HTML

WordPress имеет большую поддержку фильтра того, чтобы достигнуть все виды определенных битов содержания и изменить его, прежде чем произведено. Как the_content фильтр, который позволяет Вам получить доступ к разметке для сообщения, прежде чем это будет выведено на экран.

Я пытаюсь найти всеобъемлющий фильтр, который дает мне одну последнюю трещину при изменении заключительной разметки в целом, прежде чем произведено.

Я просмотрел список фильтров неоднократно, но ничто не выскакивает во мне: https://codex.wordpress.org/Plugin_API/Filter_Reference

Кто-либо знает об одном?

53
задан Kos 20 October 2019 в 13:14
поделиться

3 ответа

AFAIK, для этого нет ловушки, поскольку темы используют HTML, который не будет обрабатываться WordPress.

Однако вы можете использовать буферизацию вывода чтобы получить окончательный HTML:

<?php
// example from php.net
function callback($buffer) {
  // replace all the apples with oranges
  return (str_replace("apples", "oranges", $buffer));
}
ob_start("callback");
?>
<html><body>
<p>It's like comparing apples to oranges.</p>
</body></html>
<?php ob_end_flush(); ?>
/* output:
   <html><body>
   <p>It's like comparing oranges to oranges.</p>
   </body></html>
*/
20
ответ дан 7 November 2019 в 08:31
поделиться

Вы можете попробовать поискать в файле wp-includes / formatting.php. Например, функция wpautop. Если вы ищете что-то сделать со всей страницей, посмотрите на плагин Super Cache. Это записывает последнюю веб-страницу в файл для кеширования. Просмотр того, как работает этот плагин, может дать вам некоторые идеи.

3
ответ дан 7 November 2019 в 08:31
поделиться

Действительно, недавно в списке рассылки WP-Hackers была дискуссия на тему полной модификации страницы, и кажется, что консенсус заключался в том, что буферизация вывода с ob_start () и т. д. было единственным реальным решением. Было также несколько дискуссий о его плюсах и минусах: http://groups.google.com/group/wp-hackers/browse_thread/thread/e1a6f4b29169209a#

Подводя итог:

4
ответ дан 7 November 2019 в 08:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: