我在我的短代码中包含HTML模板,方法是使用ob_start
&;ob_get_clean
. 一切正常,但返回的HTML结构已损坏。
这就是我如何将html模板包含在我的shortcode函数中。
function return_cards_grid_section(){
//this variable is in the same file
global $subsitesDetails;
ob_start();
get_template_part(\'/templates/views/cards\', null, [
\'subsitesDetails\' => $subsitesDetails
]);
return ob_get_clean();
}
下面是我的卡片html文件代码
<section class="cards-in-grid-section mt-50">
<div class="p-10 grid grid-cols-1 sm:grid-cols-2 md:grid-cols-2 lg:grid-cols-2 xl:grid-cols-2 gap-5">
<?
foreach($args[\'subsitesDetails\'] as $subsite) {
?>
<a href="<?= $subsite[\'url\']; ?>" target="_blank" class="block rounded overflow-hidden shadow-lg">
<img class="w-full h-64 object-cover object-center" src="<?=$imageUrl?>" alt="Mountain">
<div class="px-6 py-4">
<div class="font-bold text-xl mb-2"><?= $subsite[\'title\'] ?></div>
<p class="text-pink text-base whitespace-normal"><?= $subsite[\'description\'] ?></p>
</div>
<div class="px-6 pt-4 pb-2">
<?
$tags = [\'tag1\', \'tag2\', \'tag3\'];
foreach ($tags as $tag){
?>
<span class="inline-block bg-gray-200 rounded-full px-3 py-1 text-sm font-semibold text-gray-700 mr-2 mb-2"><?=$tag; ?></span>
<?
}
?>
</div>
</a>
<?
}
?>
</div>
</section>
如果我使用相同的HTML模板而不使用短代码,我会得到正确的HTML结构。但是,当我试图通过短代码做同样的事情并包含HTML模板时,输出HTML的结构就不正确了。一直在试图找出问题,但不确定代码中的错误。
Output - 使用上述代码。Output 2 - 代码的预期输出。
任何形式的帮助都将不胜感激。谢谢