Wordpress插件在链接文件中显示查询

时间:2013-05-19 17:36:41

标签: php html sql wordpress

我正在创建一个wordpress插件,它将根据用户输入的参数查询数据库,并在链接的html文件中显示结果。我可以让它显示html页面,但结果变量没有通过。

以下是我显示链接HTML文件的方式:

    //This is set in another location but
        $template = 'results';
    //Execute SQL
        global $wpdb;           
        $result = $wpdb->get_results($sql);

    //Load template
        $content = file_get_contents( plugins_url( 'template-files/'.$template.'.php',__FILE__ ) );
        foreach ( $result as $r ){
            $contentCopy = $content;
            echo jww_display_php_file($contentCopy, $r);
        }

function jww_display_php_file( $content, $r ){
    $arr = (array)$r;
    ob_start() && extract($arr, EXTR_SKIP);
    eval('?>'.$content);
    $content = ob_get_clean();
    ob_flush();
    $content .= "<hr>";
    return $content;
}

以下是我在HTML文件中的内容:

<table width="100%" border="1" cellspacing="0" cellpadding="0">
  <tr>
    <td>Name</td>
    <td><?php echo $Name; ?></td>
  </tr>
</table>

提前感谢您提供任何帮助

2 个答案:

答案 0 :(得分:0)

首先,您的results.html应为results.php,您无法在php文件中使用HTML变量或函数,因此请将文件重命名为{ {1}}然后试试这个

results.php

最后,在$result = $wpdb->get_results($sql); $content = file_get_contents( plugins_url( 'template-files/results.php',__FILE__ ) ); foreach ( $result as $r ){ $contentCopy = $content; echo jww_display_file($contentCopy, $r); } function jww_display_file( $content, $r ){ $arr = (array)$r; ob_start() && extract($arr, EXTR_SKIP); eval('?>'.$content); $content = ob_get_clean(); ob_flush(); $content .= "<hr>"; return $content; } 文件中,更改以下内容

results.php

<td><?php echo $r->Name; ?></td>
<td><?php echo $r->Age; ?></td>
<td><?php echo $r->DOB; ?></td>

注意: <td><?php echo $Name; ?></td> <td><?php echo $Age; ?></td> <td><?php echo $DOB; ?></td> 是邪恶的,但当您使用服务器中的内部文件并且您知道代码是安全的时,这不是问题,这样,{{1加载eval文件并在Laravel框架中混合来自控制器的变量。

答案 1 :(得分:0)

我将results.php重命名为results.html,更改了$ content = file_get_contents(plugins_url('template-files /'.$ template。'。html',FILE));它完美无缺!