<?php
if ( is_home() ) {
?>
<script type="text/javascript">
if ($(window).width() < 768) {
document.write("<?php echo do_shortcode("[mobile-slider]"); ?>");
} else {
document.write("<?php echo do_shortcode("[desktop-slider]"); ?>");
}
</script>
我的主页呈现并显示"); } else { document.write("
,然后是主页滑块,然后是"); }
。知道为什么吗?
JS错误
语法错误:未终止的字符串文本
document.write("
HTML 输出 - 似乎正在添加换行符,我认为这破坏了脚本?
<script type="text/javascript">
if ($(window).width() < 768) {
document.write("
<!--slider-->
即使document.write("
开盘后有换行符,我怎样才能让它仍然运行?
我也尝试了以下方法,但它仍然在屏幕上打印} else {
。
<script type="text/javascript">
if ($(window).width() < 768) {
<?php echo do_shortcode("[mobile-slider]"); ?>
} else {
<?php echo do_shortcode("[desktop-slider]"); ?>
}
</script>
好的,
所以我通过执行以下操作解决了这个问题。
使用 JS,如果屏幕宽度小于 768px,我将一个变量设置为 1。使用 PHP,我将检查该变量并相应地echo
。
完全不依赖PHP来生成滑块会更容易和更干净。
将容器元素放在您希望滑块在页面中显示的位置:
<div id="slider-ct"></div>
然后使用 JavaScript 生成滑块(当然,您可以将代码组织成模块,但这只是一个示例):
$(function () {
var $sliderCt = $('#slider-ct');
if ($(window).width() < 768) {
$sliderCt.html('mobile slider');
return;
}
$sliderCt.html('desktop slider');
});
这是解决方案:
<?php
$v1 = do_shortcode("[mobile-slider]");
$v2 = do_shortcode("[desktop-slider]");
function do_shortcode($va){
return "here i am:" . $va;
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
if ($(window).width() < 768) {
$('body').html("<?php echo $v1; ?>");
} else {
$('body').html("<?php echo $v1; ?>");
}
</script>
</head>
<body>
这行就是原因。
"<?php echo do_shortcode("[mobile-slider]"); ?>"
您需要转义解释器,或者您需要更改字符串组合以在某处使用 ' 代替 "。