Есть ли способ получить минимальные функции WordPress для iframed-контента?

У меня есть немного контента в PHP-файле, который предназначен для работы внутри iframe на другой странице. PHP-файл очень прост – здесь он целиком сейчас:

<div class="content-tos"> <?php // get the terms of service from other page $getpage = get_page_by_path('/terms-of-service'); echo apply_filters('the_content', $getpage->post_content); ?> </div> 

Очевидно, мне нужно включить что-то выше этих строк кода, чтобы PHP имел доступ к основным функциям WordPress (например, get_page_by_path() ) … но если я использую get_header() я получаю весь свой заголовок, навигационную панель, код отслеживания Google Analytics и т. д., которые затем появляются внутри iframe, чего я определенно не хочу.

Есть ли способ в WordPress делать какие-то включения, которые дадут мне базовый WordPress API, но не будут рисовать полный HTML-заголовок и т. Д. И т. Д. Из файла header.php ?

Если вы не хотите get_header , тогда не вызывайте get_header() . Это просто, что функция get_header не там, где инициализируется все ядро ​​WP. Самый простой способ сделать это – использовать иерархию шаблонов для создания шаблона для определенного slug-страницы или идентификатора.

Из WP Admin создайте страницу по URL-адресу, который вы хотите использовать.

 http://example.com/tos 

Затем создайте файл шаблона, который следует правилам переопределения шаблона для этой конкретной страницы.

 wp-content/themes/<your-theme>/page-tos.php 

Оттуда вы можете поместить все, что захотите, в page-tos.php и иметь полный доступ к функциям WP и API. И вы можете отключить его, просто отменив страницу из WP Admin.

Подумайте, возможно, вы get_header() с файлом wp-blog-header.php . Первая – это тематическая функция, обычно используемая для перемещения материала в раздел <head> вашего HTML. Файл wp-blog-header.php существу загружает WordPress.

Попробуй это:

 <div class="content-tos"> <?php require('/path/wordpress/wp-blog-header.php'); // get the terms of service from other page $getpage = get_page_by_path('/terms-of-service'); echo apply_filters('the_content', $getpage->post_content); ?> </div>