Вот что я знаю:
PHP на стороне сервера, а js на стороне клиента.
Я не могу использовать Js для изменения переменной PHP из-за того, что я написал в строке выше, НО
onLoad Могу ли я включить файл или другой файл, если (в качестве примера) страница загружена внутри iFrame? (да, мой сервер позволяет использовать x-frame SAMEORIGIN) Я также знаю, что не могу использовать get_stylesheet_directory_uri () для установки URL этого файла.
Я знаю, что я могу использовать:
<script>
if (window.frameElement) {
// in frame
}
else {
// not in frame
}
</script>
Чтобы проверить, загружена ли моя страница в iFrame, но я похож на Джона Сноу, я ничего не знаю.
Я также прочитал это, используя это:
function my_enqueue_assets() {
wp_localize_script( 'ajax-pagination', 'ajaxpagination', array(
'ajaxurl' => admin_url( 'admin-ajax.php' )
));
}
Я могу каким-то образом иметь возможность «перемещаться» по моим папкам, я прав?
Как упаковать все для включения?
Спасибо.
Теперь, чтобы попытаться объяснить больше того, чего я хотел бы достичь, приведу некоторый «псевдокод» (я знаю, что я смешал js и PHP, и он не может так работать).
<script>
if (window.frameElement) {
<?php get_template_part('template-parts/header/iframe','page');?>
}
else {
<?php get_template_part('template-parts/header/notiframe','page');?>
}
На самом деле, без использования JS мне удалось решить проблему.
Где я создаю постоянные ссылки, я добавил это:
<a href="<?php echo esc_url( add_query_arg( 'access_method', 'iframe', get_permalink() ) );?>" class="iframe" title="<?php the_title();?>"">
Затем поверх страниц я установил переменную:
<?php $iframechecker = ( isset($_GET["access_method"]) && trim($_GET["access_method"]) == 'iframe' ) ?true : false;?>
Затем я проверяю, установлено ли оно:
<?php if (($iframechecker === true)){;?>//do stuff<?php }else{;?>//do other stuff<?php };?>
Надеюсь, что это поможет кому-то в будущем.
Других решений пока нет …