我创建了一个简码并将其放在我的functions.php文件中。我正在查询MySQL数据库,获得结果后,我遍历数组,最后将其显示为表格。我可以使用Difster和Elliot对问题here的回答来构建以下内容。但是,表格显示在页脚下方
add_shortcode('wpse_233031_shortcode', function(){
global $wpdb;
$myrows = $wpdb->get_results("SELECT * FROM PNaphtha", ARRAY_A);
echo "<table><tr><th>SrNo</th><th>Compound</th><th>Tc (K)</th><th>Pc (bar)</th></tr>";
ob_start();
foreach ( $myrows as $row) {
echo "<tr><td>".$row['SrNo']."</td><td>".$row['Compound']."</td><td>".
$row['Tc (K)']."</td><td>".$row['Pc (bar)']."</td></tr>";
}
return ob_get_clean();
});
我意识到我需要关闭表格标签,但是我无法确定将</table>
放在哪里。如果我使用
foreach ( $myrows as $row) {
echo "<tr><td>".$row['SrNo']."</td><td>".$row['Compound']."</td><td>".
$row['Tc (K)']."</td><td>".$row['Pc (bar)']."</td></tr> </table>";
}
在回显第一行后,表关闭,其余数据显示为文本
如果我尝试将其放置在回声之后的任何位置,则我在functions.php中会出现语法错误,如果我将其保存,无论如何,我的页面上都会出现HTTP错误500。您能否建议关闭表的适当方法,以免它出现在页脚下方。根据GautamJeyaraman的回答here,我可以将其强制设置为底部“对于主页脚的CSS,添加position:relative和bottom:0。它将始终固定在底部。”但是,我也有菜单和搜索栏,这些菜单和搜索栏由于表的行为而受到干扰,因此希望修复表本身。
答案 0 :(得分:3)
您正在关闭foreach循环内的表。当您的foreach循环完成(并且所有行都已打印)时,您必须关闭表:
foreach ( $myrows as $row) {
echo "<tr><td>".$row['SrNo']."</td><td>".$row['Compound']."</td><td>".
$row['Tc (K)']."</td><td>".$row['Pc (bar)']."</td></tr>";
}
echo "</table>";
答案 1 :(得分:1)
add_shortcode('wpse_233031_shortcode', function(){
global $wpdb;
//start table tag
$outputHTML = '<table>';
$myrows = $wpdb->get_results("SELECT * FROM PNaphtha", ARRAY_A);
//add table row and table header
$outputHTML += "<tr><th>SrNo</th><th>Compound</th><th>Tc (K)</th><th>Pc (bar)</th>
</tr>";
ob_start();
foreach ( $myrows as $row) {
//add each row inside the forloop
$outputHTML += "<tr><td>".$row['SrNo']."</td><td>".$row['Compound']."</td><td>".
$row['Tc (K)']."</td><td>".$row['Pc (bar)']."</td></tr>";
}
$outputHTML += = '</table>'
//end the table after the loop has done
return ob_get_clean();
});
也许是这样?
不知道如何输出数据,但是您只能在最后回显构建的字符串,我有一段时间没有使用wordpress了。