在短代码中使用 wordpress $wpdb 显示 <table> 中数据库中的数据

Display data from database inside <table> using wordpress $wpdb insdie a shortcode

下面的代码在没有格式化的情况下打印成一个块。鉴于短代码已经 运行 php 我是否正确指定了 html?它不喜欢它,因为 HTML 部分似乎不适合我。它只是作为一个完整的块输出。 (见图)

   function trying_2() {
    '
    <table border="1">
    <tr>
     <th>name</th>
     <th>partysize</th>
     <th>phonenumber</th>
    </tr>';

   
 global $wpdb;

// sending query
 $result = $wpdb->get_results ("SELECT *  FROM table_name");
    foreach ( $result as $print )   {

      echo '<tr>';
      echo '<td>' . $print->name.'</td>';
      echo '<td>' . $print->partysize.'</td>';
      echo '<td>' . $print->phonenumber.'</td>';
      echo '<td>' . $print->emailaddress.'</td>';
        echo '<td>' . $print->Time_stamp.'</td>';
        echo '<td>' . $print->currentstatus.'</td>';
    '</tr>';
    }
 '</table>';
}

add_shortcode('tryin', 'trying_2');

您没有正确格式化 HTML / table,因此您在 wordpress 页面上将所有内容打印在一行中。

不需要 需要分别回显每个 td。您只需将一个 variable 定义为 echoed 并在您的 function 中使用,您只需要将循环数据连接到该变量即可。

只需在您的活动主题 functions.php 文件中 粘贴 下面 code ,然后在页面中调用您的短代码 [tryin] 。 (代码经过测试并有效)

function trying_2() {

    global $wpdb;
    
    $results = '<table border="1">
            <thead>
                <tr>
                    <th>name</th>
                    <th>partysize</th>
                    <th>phonenumber</th>
                    <th>emailaddress</th>
                    <th>Time_stamp</th>
                    <th>currentstatus</th>
                </tr>
            </thead>
        <tbody>';

        // sending query
        $WPQuery = $wpdb->get_results ("SELECT * FROM table_name");
            foreach ( $WPQuery as $print )   {
                $results .= "<tr>
                            <td>$print->name</td>
                            <td>$print->partysize</td>
                            <td>$print->phonenumber</td>
                            <td>$print->emailaddress</td>
                            <td>$print->Time_stamp</td>
                            <td>$print->currentstatus</td>
                        </tr>";
                    }
                $results .= "</tbody>
    </table>";
    //Print results
    echo $results;
}

add_shortcode('tryin', 'trying_2');