web-dev-qa-db-fra.com

Afficher les données sur les publications du site Wordpress et les pages de la table mysql

Je suis nouveau avec Word Press et j'ai une table dans phpmyadmin qui contient les données que je veux afficher dans mon site de presse Word sur différents posts et pages. J'ai beaucoup cherché et mis au point un plugin nommé Allow PHP in Post and Pages. Ce plugin vous permet d'écrire un script php dans des posts et des pages. J'ai essayé un petit code dans mon post de page, mais il me donne simplement Resource id #147 dans l'affichage mais pas le résultat que je veux. C'est le code que j'ai essayé dans un de mes post.

[php]
$connect = mysql_connect("localhost", "root", "");
mysql_select_db("ahadith");
$query = mysql_query("SELECT * FROM muslim");
echo ($query);
[/php]

Y at-il quelqu'un qui peut m'aider avec cela. Ou existe-t-il un autre moyen de récupérer les données souhaitées dans ma base de données et de les afficher sur mon site de presse Word? Je vous remercie.

1
Salik Asad

Oubliez la connexion à votre base de données alors que WordPress est prêt et connecté par défaut. Allez après la classe wpdb pour les tâches spécifiques à la base de données.

Commencez par appeler la variable globale $wpdb qui correspond à la classe de base de données, puis utilisez quelques méthodes pour interroger votre table personnalisée spécifique.

Pas sûr de la structure de la table? décrivez-le d'abord:

global $wpdb;
$table = $wpdb->prefix . "muslim";
$query = $wpdb->get_results( "DESCRIBE $table" );
echo var_dump ( $query );

Maintenant, en sélectionnant les résultats de ce tableau:

global $wpdb;
$table = $wpdb->prefix . "muslim";
$results = $wpdb->get_results( "SELECT * FROM $table" );
echo var_dump ( $results );

Je suppose que la table muslim est là prête et ajoutée correctement. droite?

Supposons que vous obteniez des résultats du tweak précédent, vous pouvez simplement les parcourir en utilisant une boucle appropriée.

Vous pouvez enregistrer cela dans un shortcode personnalisé à utiliser dans les articles/pages comme vous l'avez indiqué. Assurez-vous simplement de lire l'API sur le fonctionnement de - shortcodes

add_shortcode('wpse_233021_shortcode', function(){
    global $wpdb;
    $table = $wpdb->prefix . "muslim";
    $results = $wpdb->get_results( "SELECT * FROM $table" );
    ob_start();
    echo var_dump( $results );
    return ob_get_clean(); // or iterate through and put into an HTML table
});

Maintenant, il y a ce [wpse_233021_shortcode] que vous avez, à insérer dans le contenu de la page/du post.

En supposant que cela fonctionne, n'effectuez pas toujours des appels vers votre base de données lorsque cela n'est pas nécessaire. Essayez donc de mettre en cache les données et de détruire le cache lors de la mise à jour des données ou laissez les éléments transitoires expirer dans un délai donné. Vous pouvez utiliser API Transients pour la mise en cache, c'est très clair et simple et assez efficace pour la mise en cache non persistante

1
Samuel Elh