Проблема
Выбор конкатенации строк или открытие / закрытие 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; ?>