用于在WP页面上显示来自SQL-db的数据的插件或教程?

时间:2017-03-27 作者:Phish

我有一个树莓Pi 3上的自定义气象站,运行本地灯设置。传感器数据存储在其自己的数据库中。Wordpress的工作就是通过使用全屏浏览器,轻松(在某种程度上)编辑显示页面的设计,显示在辅助Pi上。

我现在需要3个有些“独特”的函数,但我找不到合适的解决方案:

数据库最新(实时)数据输入(如温度、湿度、风速、雨量传感器数据、雨量等)的短代码,使更改页面内数据的实际位置变得非常方便。

我需要一个管理后端(插件、adminpanelentry等)来选择从数据库中获取最新数据,或者在传感器错误或其他可能需要的情况下输入固定值。最好有:在数据库中保存手动条目,并从中选择下拉菜单。没什么特别的http://i.imgur.com/TbZMFMK.png

添加新数据值的“稍微”简单方法(如果添加了新传感器)

数据查询是通过Python写入数据库来完成的。让Python直接在自己的表中将数据写入Wordpress DB会更容易吗?虽然可能已经有软件在插件的情况下,做什么我需要已经?

谢谢

1 个回复
SO网友:brianjohnhanna

这是一个相当模糊和广泛的问题,但我会试一试。您可以将以下代码添加到功能插件中,或者如果您正在运行主题,可以将其放置在主题的functions.php 文件(显然,您必须更改SQL、属性等-这只是概念证明)

add_shortcode( \'wpse_weather_data\', \'wpse_weather_data_shortcode_cb\' );
function wpse_weather_data_shortcode_cb( $atts ) {
    $atts = shortcode_atts( array(
        \'fallbackValue\' => \'\',
        \'sensor\' => 0
     ), $atts );

     extract( $atts );

     // Make the connection to a separate database using PHP. 
     // You might want to store these credentials as constants in wp-config.php 
     // to keep all the db credentials in one place.
     $db = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db");
     if ( !$db ) {
         return $fallbackValue;
     }

     // Make the query
     $query = "SELECT * FROM table_name WHERE sensor = {$sensor}";
     $result = mysqli_query($db, $query);
     if ( !$result ) {
         return $fallbackValue;
     }

     $row = mysqli_fetch_array($result);
     // Put the data on the page... FYI you have to return the data from a shortcode, not echo it.
}
构建选项页面、将过去的值存储在数据库中等超出了本论坛的范围,但这将为您提供一种入门的方法。您可以通过向快捷码添加不同的属性来自定义它(根据#3)。例如,您可以在此处添加其他传感器并指定回退值,方法是将短代码放置在内容中的某个位置并这样调用:[wpse_weather_data sensor="0" fallbackValue="Could not fetch sensor data"]

希望这能引导你朝着正确的方向前进。

相关推荐

cannot connect database

我是wordpress的新手。我计划从我自己的php代码连接wordpress数据库。但我在尝试连接数据库时遇到问题,每次连接都会得到错误结果。im使用此代码$user_name = \"myusername\"; $password = \"password\"; $database = \"mydatabasename\"; $host_name = \"localhost\"; $connect_db=mysqli_connect($host_name, $