web-dev-qa-db-fra.com

Des plugins ou des tutoriels pour afficher les données de SQL-db sur la page WP?

J'ai une station météorologique personnalisée sur un Raspberry Pi 3 avec une installation LAMP locale en cours d'exécution. Le sensordata est stocké dans sa propre base de données. Le travail de Wordpress consiste simplement à avoir une possibilité WYSIWYG facile (quelque peu) d’éditer la conception de la page d’affichage qui est affichée sur un Pi secondaire à l’aide d’un navigateur plein écran.

J'ai maintenant besoin de 3 fonctions "uniques" pour lesquelles je n'ai pas pu trouver de solution adéquate pour:

  1. Des codes abrégés pour la dernière entrée de données (en temps réel) de la base de données (comme la température, l’humidité, la vitesse du vent, les précipitations, le volume de pluie, etc.) facilitant le changement de placement des données dans la page.

  2. J'ai besoin d'un administrateur (plugin, adminpanelentry, peu importe) pour choisir de saisir les dernières données de la base de données ou d'entrer une valeur fixe dans le cas d'erreurs de capteur ou d'autres occasions qui pourraient en nécessiter. Ce serait bien d'avoir: Sauvegarde des entrées manuelles dans la base de données et avoir un menu déroulant pour choisir parmi celles-ci. Rien d'extraordinaire, quelque chose comme http://i.imgur.com/TbZMFMK.png

  3. un moyen "assez" facile d'ajouter de nouvelles valeurs de données (si un nouveau capteur est ajouté)

Data-aquesition se fait en Python en écrivant dans la base de données. Serait-il plus facile de laisser Python écrire les données dans le DB Wordpress directement dans sa propre table? Peut-être existe-t-il déjà un logiciel dans le cas de plugins qui font ce dont j'ai besoin déjà?

Merci!

4
Phish

C'est une question assez vague et large, mais je vais essayer. Vous pouvez ajouter le code suivant dans un plugin de fonctionnalité ou, si vous utilisez un thème, vous pouvez le placer dans le fichier functions.php de votre thème. (Évidemment, vous devrez changer le code SQL, les attributs, etc. - juste une preuve de concept)

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.
}

Construire une page d'options, stocker les valeurs passées dans une base de données, etc. vont bien au-delà de la portée de ce forum, mais cela vous donnerait un moyen de commencer. Vous pouvez le personnaliser (par # 3) en ajoutant différents attributs au shortcode. Par exemple, ici, vous pouvez ajouter des capteurs supplémentaires et spécifier une valeur de secours en plaçant le shortcode quelque part dans le contenu et en l'appelant ainsi: [wpse_weather_data sensor="0" fallbackValue="Could not fetch sensor data"]

J'espère que cela vous oriente dans la bonne direction.

1
brianjohnhanna