J'ai le code suivant
function stock_agenda() {
$days = json_decode(file_get_contents('json_file'));
unset($days[0]);
return '<table class="table">
<thead>
<tr>
<th> Title </th>
<th>Content</th>
<th>Date</th>
</tr>
</thead>
<tbody>
'. foreach($days as $day){.'
<tr>
<td>'.$day[0].'</td>
<td>'.$day[1].'</td>
<td>'.$day[2].'</td>
</tr>
'. }.'
</tbody>
</table>' ;
}
Comment l'assigner à un shortcode? Si j'écris foreach
dans la méthode return
, j'obtiens une erreur.
Comme je l'ai dit dans le commentaire, vous pouvez utiliser la mise en mémoire tampon comme ceci
function stock_agenda() {
$days = json_decode(file_get_contents('json_file'));
unset($days[0]);
ob_start(); // start buffer
?>
<table class="table">
<thead>
<tr>
<th> Title </th>
<th>Content</th>
<th>Date</th>
</tr>
</thead>
<tbody>
<?php foreach($days as $day) { ?>
<tr>
<td><?php echo $day[0]; ?></td>
<td><?php echo $day[1]; ?></td>
<td><?php echo $day[2]; ?></td>
</tr>
<?php } ?>
</tbody>
</table>
<?php
$output = ob_get_clean(); // set the buffer data to variable and clean the buffer
return $output;
}
Vous pouvez utiliser:
function stock_agenda() {
$days = json_decode(file_get_contents('json_file'));
unset($days[0]);
$include_variable = '';
foreach($days as $day){
$include_variable .= <<<EOD
<tr>
<td>$day[0]</td>
<td>$day[1]</td>
<td>$day[2]</td>
</tr>
EOD;
}
$str = <<<EOD
<table class="table">
<thead>
<tr>
<th> Title </th>
<th>Content</th>
<th>Date</th>
</tr>
</thead>
<tbody>
$include_variable
</tbody>
</table>
EOD;
return $str;
}