0

我想要echo一些基于用户是在移动设备上(小于 768 像素)还是更大的代码。

我做了以下事情:

            <?php  
              if ( is_home() ) {
            ?>
              <script type="text/javascript">
              if ($(window).width() < 768) {
                  document.write("<?php echo my_shortcode("[mobile-slider]"); ?>");
              } else {
                  document.write("<?php echo my_shortcode("[desktop-slider]"); ?>");
              }
              </script>
            <?php                    
            } else {
              //do the stuff for the other pages

            } ?>

但是现在当主页呈现它时,它会显示"); } else { document.write("主页滑块,然后是"); }. 知道为什么吗?

JS错误

SyntaxError:未终止的字符串文字

文档.write('

HTML 输出 - 似乎添加了一个我认为会破坏脚本的换行符?

<script type="text/javascript">
if ($(window).width() < 768) {
document.write("
<!--slider--> 
4

3 回答 3

0

尝试这个:

document.write(<?php echo "\"[mobile-slider]\""; ?>);
于 2013-09-30T02:07:26.503 回答
0
"<?php echo my_shortcode("[mobile-slider]"); ?>"

改成

"<?php echo my_shortcode('[mobile-slider]'); ?>"
                         ^               ^  // changed quotes here

或转义引号

"<?php echo my_shortcode(\"[mobile-slider]\"); ?>"
于 2013-09-30T01:46:24.450 回答
0

好吧,正如其他人所提到的,您的报价肯定是错误的,您的内部报价必须与外部报价不同,或者已转义。

您是否可以在主文档(javascript 之外)中运行 php 函数,然后选择使用 javascript 显示/隐藏/更改其内容?

如果这不可能,请尝试直接调用您的函数,而不是通过 do_shortcode 挂钩。

作为最后的选择,您可能需要在此处使用 ajax 调用。我不知道您是否能够以您在这里尝试的方式调用简码。

于 2013-09-30T05:09:57.327 回答