我可能会说这一切都错了,但是这里......我试图在 WP 主题文件中使用 JavaScript 来执行条件 PHP include
基于 CSS 媒体查询和伪元素。
在 CSS 中,我使用媒体查询检查纵向模式下的移动设备,在此查询下使用:after
属性向主体添加隐藏的content="mobile_portrait"
元素。
然后我想继续浏览主页模板并使用 JavaScript :
var size = window.getComputedStyle(document.body,':after').getPropertyValue('content');
if (size == 'mobile_portrait') {
<?php
add_action( 'genesis_after_header', 'do_this' );
function do_this() {
require(CHILD_DIR.'/do_this.php');
}
?>
}
else {
<?php
add_action( 'genesis_after_header', 'do_the_other' );
function do_the_other() {
require(CHILD_DIR.'/do_the_other.php');
}
?>
}
似乎WP正在跳过 JavaScript 并解析 PHP ,因为如果我取出其他内容它只会加载do_this.php
是否 Java 检查返回true或false,如果我将else留在其中,它会破坏网站:(
关于我做错什么的想法?或者更好的方法来加载基于媒体查询的 PHP 文件?
提前致谢
答案 0 :(得分:1)
PHP和Javascript不能像你想要的那样互换使用。
PHP是渲染器,它正在构建输出(构建Javascript)
PHP将被运行,无论它们放在Javascript条件中的哪个位置,因为Javascript条件与它们的执行无关。
==
现在添加一个解决方案:
也许使用像您设置的javascript只需重定向到您想要为给定视图运行的phpfile:
var size = window.getComputedStyle(document.body,':after').getPropertyValue('content');
if (size == 'mobile_portrait') {
window.location = '<?= CHILD_DIR.'/do_this.php'; ?>';
}
else {
window.location = '<?= CHILD_DIR.'/do_the_other.php'; ?>';
}
所以有不同的页面可以根据媒体查询进行必要的包含