$wpdb查询输出php代码,而不是执行它

时间:2017-08-10 作者:Sriram Nadiminti

我正在Azure中的WordPress HTML页面中使用以下代码:

 <html>
 <body>
 <?php
 global $wpdb;
 $result = $wpdb -> get_results ( "
 SELECT \'VillageLeadersName\' 
 FROM wp_villageleaderdb 
 WHERE VillageID = \'V001\' AND VillageLeaderPosition = \'Sarpanch\' LIMIT 0, 100
 " );
 echo $result;
 echo $row[\'VillageLeadersName\'] . "<br />";
 ?>

 </body>
 </html>
下图显示了生成的屏幕:enter image description here

查询在管理控制台上运行良好。结果页面显示代码,而不是结果。我错在哪里?

2 个回复
最合适的回答,由SO网友:Johansson 整理而成

很明显,您的文件没有执行PHP函数,问题可能是因为您将此文件另存为something.html, 将其存储在主题或WordPress安装目录中。

您可以做的是将其包装为函数或短代码,然后创建一个页面并在其中使用该短代码或函数。

下面是一个简单的示例,可以从查询中开发快捷代码:

add_shortcode(\'my-shortcode\', \'create_my_shortcode\');
function create_my_shortcode(){
    global $wpdb;
    $result = $wpdb -> get_results ( "
        SELECT \'VillageLeadersName\' 
        FROM wp_villageleaderdb 
        WHERE VillageID = \'V001\' AND VillageLeaderPosition = \'Sarpanch\' LIMIT 0, 100
        " );
    return $result[0][1] . "<br />";
}
将此代码放入主题的functions.php 文件,然后前往New > Page 并创建一个页面。之后,您可以在页面中使用以下短代码:

[my-shortcode]
这将执行并输出您的代码。还请注意,您不能echo 短代码中的内容,您必须return 信息技术

另一种方法是简单地将其包装为函数,而不创建短代码,然后在模板中调用该函数。

function create_my_shortcode(){
    // Your code here
}
现在,复制你的主题page.php, 将其重命名为page-whatever.php 并按您喜欢的方式进行修改。完成编辑后,使用create_my_shortcode() 任何你想去的地方。在这种方法中,您可以echo 内容也一样。

之后,您可以在后端创建新页面时使用此模板。

更新如您的评论中所述,结果可能是一个数组。要打印数组,可以使用如下foreach:

$data = \'\';
foreach( $result as $single_result ){
    $data .= $single_result;
}
return $data. $row[\'VillageLeadersName\'] . "<br />";

SO网友:Mark Kaplun

您的web服务器可能在PHP文件的执行方面存在一些错误配置,但不管怎样,您试图做的事情可能属于“做错了”。前端HTML生成文件几乎总是主题的一部分,您可能需要做的是开发page template 用于此特定页面。

结束

相关推荐

如何使用wpdb从表中拉取数据?

我创建了一个新的数据库连接:$mydb=new wpdb(db info)我知道它可以连接,但由于某种原因,我无法从以下位置获取任何数据:$pulled = $mydb->get_results($mydb->prepare($query), \"ARRAY_A\"). 我知道它自己写的查询是正确的,但由于某种原因$pull不包含任何数据。任何人有任何建议或解决方案,请和谢谢你。