-1
            <?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错误

SyntaxError:未终止的字符串文字

文档.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>
4

4 回答 4

0

完全不依赖 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');

});
于 2013-09-30T03:33:32.353 回答
0

这是解决方案:

   <?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>
于 2013-09-30T03:18:33.197 回答
0

好的,所以我通过执行以下操作解决了这个问题。

使用 JS,如果屏幕宽度小于 768 像素,我会将变量设置为 1。使用 PHP,我将检查该变量并echo相应地进行检查。

于 2013-09-30T03:31:48.270 回答
-1

这条线就是为什么。

"<?php echo do_shortcode("[mobile-slider]"); ?>"

您需要转义解释器,或者您需要更改字符串连接以在某处使用 ' 代替 "。

于 2013-09-30T03:16:48.837 回答