【问题标题】:Am I missing an escape for one of these quotes?我是否错过了这些报价之一的逃脱?
【发布时间】:2012-02-11 11:17:03
【问题描述】:

我不完全确定为什么这不起作用。但是这段代码不起作用。

<?php
foreach ( $gallery_ids as $gallery ) {
    echo '<div class="tgallery" rel="'.$gallery['gid'].'"><?php echo do_shortcode("[nggallery id='.$gallery['gid'].']"); ?></div>';
}
?>

我猜我可能把错误的引号放在了错误的位置。

所有部分单独工作,如:

  1. 我可以用echo $gallery['gid'] 显示'gid'
  2. 我可以让 div 标签显示为适当的rel
  3. 我自己可以让&lt;?php echo do_shortcode("[nggallery id=3]"); ?&gt; 工作。

我就是不能让整个事情一起出现。

【问题讨论】:

  • echo 语句中放置&lt;?PHP 标签有什么意义?

标签: php wordpress quotes


【解决方案1】:

问题

为 HTML 选择字符串连接或打开/关闭 PHP。您不能像上面那样将两者结合起来。

echo '<div class="tgallery" rel="'.$gallery['gid'].'">
         <?php echo do_shortcode("[nggallery id='.$gallery['gid'].']"); ?>
      </div>';

上面的第二行代码不属于字符串,因为&lt;?php ... ?&gt;之间的代码在包含在字符串中时不会被PHP解析。

解决方案

串联

我已将您的代码修复为在下面使用串联:

foreach ( $gallery_ids as $gallery ) {
    $shortcode = do_shortcode("[nggallery id={$gallery['gid']}]");
    echo '<div class="tgallery" rel="' . $gallery['gid'] . '">' . $shortcode . '</div>';
}

打开和关闭 PHP

这就是使用 PHP“模板”的方式:

<?php foreach($gallery_ids as $gallery ): ?>
    <div class="tgallery" rel="<?php echo $gallery['gid']; ?>">
        <?php echo do_shortcode("[nggallery id={$gallery['gid']}]"); ?>
    </div>
<?php endforeach; ?>

【讨论】:

    【解决方案2】:

    试试这个....

    <?php
    foreach ( $gallery_ids as $gallery ) {
        echo '<div class="tgallery" rel="'.$gallery['gid'].'">'.do_shortcode("[nggallery id=".$gallery['gid']."]").'</div>';
    }
    ?>
    

    你有一个 php 语句

    试试Notepad 然后它会对你的php代码进行颜色编码,这样你就可以清楚地看到你错了哪些引号等

    【讨论】:

      【解决方案3】:
      <?php 
      foreach ( $gallery_ids as $gallery ) { 
          echo "<div class=\"tgallery\" rel=\"{$gallery["gid"]}\">". do_shortcode("[nggallery id=\"{$gallery["gid"]}\"]") ."</div>";
      } 
      ?> 
      

      【讨论】:

        【解决方案4】:

        为什么将&lt;?php ?&gt; 放在 echo 中?

        <?php
        foreach ( $gallery_ids as $gallery ) 
        {
            echo '<div class="tgallery" rel="'.$gallery['gid'].'">'.do_shortcode('[nggallery id='.$gallery['gid'].']').'</div>';
        }
        ?>
        

        【讨论】:

          【解决方案5】:

          您正在混合插入的 php 和 html,将 "&lt;?php echo" 放在已经是 php 的内容中。

          <div class="tgallery" rel="<?php echo $gallery['gid'];?>">
          <?php echo do_shortcode('[nggallery id="'.$gallery['gid'].'"]'); ?>
          </div>
          

          【讨论】:

            【解决方案6】:

            你已经“在”php,所以你的开始标签导致了问题:

            <?php echo do_shortcode("[nggallery id='.$gallery['gid'].']"); ?>
            

            应该是这样的:

            echo '<div class="tgallery" rel="'.$gallery['gid'].'">' . do_shortcode('[nggallery id='.$gallery['gid'].']') . '</div>';
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-12-16
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2023-02-24
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多