Я пишу плагин, в котором вы вводите шорткод на страницу, и он отображает таблицу данных.
Однако содержимое страницы перед шорткодом случайным образом вставляется в середину таблицы.Когда я обновляю страницу, содержимое, введенное над шорткодом, случайным образом перемещается в таблицу, созданную шорткодом.
Содержимое под шорткодом не отображается в возвращении шорткода.
Кто-нибудь знает, почему это может происходить?Это супер странно.
------------------ Редактирование страницы WordPress ---------------
Вотнекоторый контент.
Вот еще один абзац.
[view_contributions]
Конец содержимого страницы.
------------------ конец редактирования wordpress ----------------------------
Затем выдает
------ дисплеи --------
[Таблица данных шорткода с надписью «Вот немного контента. Вот еще один абзац».случайно вставлен где-то в ячейку.Тогда еще таблица данных]
Конец содержимого страницы.
-------- конец экрана -----
Это так странно.Это как если бы шорткод рендерится первым, но затем WordPress вставляет содержимое страницы во что бы то ни было шорткодом.Есть идеи, что может вызвать это?
РЕДАКТИРОВАТЬ: Добавлен весь код в случае, если происходит что-то действительно странное ...
function soco_view_contributions_shortcode() {
$view_contributions = Soco_Contributions::soco_display_contributions();
return $view_contributions;
}
add_shortcode( 'view_contributions', 'soco_view_contributions_shortcode');
public function soco_display_contributions() {
$contribution_results = Soco_Contributions::soco_get_contributions_view();
ob_start;
?>
<div name="div-output-container">
<form name="frm-search-contributions">
<table width="100%" border="0">
<tbody>
<tr>
<th scope="col">Start Date</th>
<th scope="col">End Date</th>
<th scope="col">Minimum</th>
<th scope="col">Maximum</th>
<th scope="col">Name</th>
<th scope="col">Event</th>
</tr>
<tr>
<td><input type="date" name="start-date"></td>
<td><input name="end-date" type="date" ></td>
<td><input type="number" name="low-number"></td>
<td><input type="number" name="high-number"></td>
<td><text name="txt-auto-name"> </textarea></td>
<td><select> </select></td>
</tr>
</tbody>
</table>
<input type="submit">
<input type="reset">
</form>
<table width="100%" border="0">
<tbody>
<tr>
<th scope="col">Date</th>
<th scope="col">Amount</th>
<th scope="col">Cycle</th>
<th scope="col">Name</th>
<th scope="col">Event</th>
</tr>
<?php foreach ($contribution_results as $cr) { ?>
<tr>
<td><?php echo $cr->contribution_date ?></td>
<td><?php echo $cr->amount ?></td>
<td><?php echo $cr->cycle_amount ?></td>
<td><?php echo $cr->last_name.', '.$cr->first_name ?></td>
<td> </td>
</tr>
<?php } ?>
</tbody>
</table>
<button name="btnDownload" id="btnDownload" title="Click this button to download the above dataset." >Download CSV File</button>
</div>
<?php
$contribution_output = ob_get_clean();
return $contribution_output;
}