2 回答
TA贡献1998条经验 获得超6个赞
您希望将输出分配给变量,而不是回显:
$get_runners = $connection->prepare('SELECT first_name, last_name, nick_name, FROM database WHERE status = :status ORDER BY first_name ASC');
$get_runners->execute([status=>'success']);
// Create the table
$output = '
<table id="Table" class="start-list-table">
<thead>
<tr class="start-list-tr">
<th scope="col">Name</th>
<th scope="col">Club</th>
</tr>
</thead>
<tbody>
';
// Get the runner object:
$runners = $get_runners->fetchAll();
foreach($runners as $runner){
if($runner->nick_name)
{
$runner_name = $runner->first_name.' "'.$runner->nick_name.'" '.$runner->last_name;
}
else
{
$runner_name = $runner->first_name.' '.$runner->last_name;
}
$output .= '
<tr class="start-list-tr">
<td data-label="Name">'.$runner_name.'</td>
<td data-label="Club">'.$runner->club.'</td>
</tr>';
}
$output .= '</tbody>
</table>';
return $output;
}
add_shortcode( 'startlist', 'create_startlist' );
这使用串联来继续通过函数填充变量。然后,将 设置为变量。return$output
TA贡献1850条经验 获得超11个赞
首先阅读更多关于短代码输出:https://codex.wordpress.org/Shortcode_API#Output
此刻我能想到两种方式。
正在使用ob_start...基本上你需要把你的代码包装进去ob_start()
function create_startlist() {
ob_start();
/* CODE HERE */
return ob_get_clean();
}
二是使用串联运算符
function create_startlist() {
$output = '';
$output .= 'OUTPUT HERE';
return $output;
}
- 2 回答
- 0 关注
- 71 浏览
添加回答
举报