将数据库信息显示到html表Wordpress中

时间:2017-02-02 17:54:41

标签: php html mysql database wordpress

我的数据库中有一个叫做persona的表。 我只需要将此表中的数据检索到wordpress中页面内的html表中。到目前为止,这就是我所拥有的:

<table border="1">
<tr>
 <th>Firstname</th>
 <th>Lastname</th>
 <th>Points</th>
</tr>
<tr>
  <?php
    global $wpdb;
    $result = $wpdb->get_results ( "SELECT * FROM persona" );
    foreach ( $result as $print )   {
        echo '<td>' $print->ID_per.'</td>';
        }
  ?>
</tr>               

我在我正在处理的特定页面中添加并发布它但是当我刷新页面时它只显示页面中打印的代码。我想知道我是不是把代码放在正确的地方,或者我不知道把它放在哪里。

看下面的图片: enter image description here

2 个答案:

答案 0 :(得分:4)

根据您的情况,最简单,最好的方法是在您的主题中添加shortcode

如果您将此代码添加到主题的functions.php文件中,则可以通过将[persona-table]添加到任何页面或帖子来随时随地显示信息。

// add the shortcode [persona-table], tell WP which function to call
add_shortcode( 'persona-table', 'persona_table_shortcode' );

// this function generates the shortcode output
function persona_table_shortcode( $args ) {
    global $wpdb;
    // Shortcodes RETURN content, so store in a variable to return
    $content = '<table>';
    $content .= '</tr><th>Firstname</th><th>Lastname</th><th>Points</th></tr>';
    $results = $wpdb->get_results( ' SELECT * FROM persona' );
    foreach ( $results AS $row ) {
        $content = '<tr>';
        // Modify these to match the database structure
        $content .= '<td>' . $row->firstname . '</td>';
        $content .= '<td>' . $row->lastname . '</td>';
        $content .= '<td>' . $row->ID_per . '</td>';
        $content .= '</tr>';
    }
    $content .= '</table>';

    // return the table
    return $content;
}

答案 1 :(得分:0)

尝试类似:

function db_short() {
    global $wpdb;
    $result = $wpdb->get_results ( "SELECT * FROM persona" );
    foreach ( $result as $print )   {
        echo '<td>' $print->ID_per.'</td>';
    }
}
add_shortcode( 'show_db_info', 'db_short' );

然后你可以在你输入php代码的地方插入短代码[show_db_info]。如果你想进一步编辑php,你可以在这个函数内自由编辑。如果您需要从数据库中选择不同的选项,则可以添加短代码属性,但仅列出这些属性就足够了。这进入了functions.php