Я пропускаю побег для одной из этих цитат? - PullRequest
1 голос
/ 16 января 2012

Я не совсем уверен, почему это не работает.Но этот фрагмент кода не работает.

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

Я догадывался, что, возможно, я помещаю неправильные кавычки в неправильное место.

Все части работают отдельно, как в:

  1. Я могу отобразить значение 'gid' с помощью echo $gallery['gid']
  2. Я могу заставить теги div появляться с соответствующими rel
  3. Я могу, с помощьюсам, заставь <?php echo do_shortcode("[nggallery id=3]"); ?> работать.

Я просто не могу заставить все это выглядеть вместе.

Ответы [ 6 ]

2 голосов
/ 16 января 2012

Вы смешиваете интерполированные php и html, помещая "<?php echo" внутри того, что уже php.

<div class="tgallery" rel="<?php echo $gallery['gid'];?>">
<?php echo do_shortcode('[nggallery id="'.$gallery['gid'].'"]'); ?>
</div>
1 голос
/ 16 января 2012

Почему вы положили <?php ?> в ваше эхо?

<?php
foreach ( $gallery_ids as $gallery ) 
{
    echo '<div class="tgallery" rel="'.$gallery['gid'].'">'.do_shortcode('[nggallery id='.$gallery['gid'].']').'</div>';
}
?>
1 голос
/ 16 января 2012

Проблема

Выбор конкатенации строк или открытие / закрытие PHP для HTML.Вы не можете комбинировать оба, как вы делали выше.

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

Вторая строка кода выше не принадлежит внутрь строки, так как код между <?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; ?>
0 голосов
/ 16 января 2012

попробуйте это ....

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

у вас внутри php statment

Попробуйте Блокнот , тогда он будет цветным кодом вашего php-кода, так что вы можетечетко видеть, какие цитаты и т. д. у вас неправильно

0 голосов
/ 16 января 2012
<?php 
foreach ( $gallery_ids as $gallery ) { 
    echo "<div class=\"tgallery\" rel=\"{$gallery["gid"]}\">". do_shortcode("[nggallery id=\"{$gallery["gid"]}\"]") ."</div>";
} 
?> 
0 голосов
/ 16 января 2012

Вы уже "в" php, поэтому ваш открывающий тег вызывает проблему:

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

Это должно быть что-то вроде:

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