我错过了其中一个报价的逃脱?

时间:2012-01-16 14:21:04

标签: php wordpress quotes

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

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

我猜测也许我把错误的引号放错了地方。

所有部分分开工作,如:

  1. 我可以使用'gid'
  2. 显示echo $gallery['gid']
  3. 我可以使用适当的rel
  4. 显示div标签
  5. 我可以让<?php echo do_shortcode("[nggallery id=3]"); ?>工作。
  6. 我无法让整个事物一起出现。

6 个答案:

答案 0 :(得分:2)

你正在混合内插的php和html,将"<?php echo"置于已经是php的内容中。

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

答案 1 :(得分:1)

问题

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

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

上面的第二行代码不属于字符串,因为当PHP包含在字符串中时,<?php ... ?>之间的代码将不被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 :(得分:1)

为什么要将<?php ?>放入回音中?

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

答案 3 :(得分:0)

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

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

应该是这样的:

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

试试这个......

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

你有一个php语句尝试Notepad然后它将为你的PHP代码着色代码,这样你就可以清楚地看到你错误的引用等