Page 1 sur 1

comment convertir une requête wordpress en requête php

Posté : 05 déc. 2021, 12:16
par flexi2202
bonjour a tous

est il possible de convertir cette requête de wordpress en requête php

Code : Tout sélectionner

global $wpdb; $ID_CATEGORY = 10; $query = $wpdb->prepare("SELECT {$wpdb->prefix}users.ID, {$wpdb->prefix}users.display_name as user_nicename, COUNT(*) as count FROM {$wpdb->prefix}posts, {$wpdb->prefix}users, {$wpdb->prefix}term_relationships WHERE {$wpdb->prefix}posts.post_type='post' AND {$wpdb->prefix}posts.post_status='publish' AND {$wpdb->prefix}posts.post_author = {$wpdb->prefix}users.ID AND {$wpdb->prefix}posts.ID = {$wpdb->prefix}term_relationships.object_id AND {$wpdb->prefix}term_relationships.term_taxonomy_id = %d GROUP BY post_author ORDER BY count DESC LIMIT 5 ;", $ID_CATEGORY); $results = $wpdb->get_results($query, OBJECT);

Re: comment convertir une requête wordpress en requête php

Posté : 05 déc. 2021, 16:11
par @rthur
Cette requête est déjà en PHP (et SQL)
Qu'est-ce que tu cherches à faire exactement ?

Re: comment convertir une requête wordpress en requête php

Posté : 05 déc. 2021, 16:37
par flexi2202
bonjour
merci de l aide
pour l instant cette requête fonctionne sur mon site wordpress
Mais j aurais souhaiter copier coller le code et le mettre dans une page de mon site en php qui ne possède pas de base de donnée

Re: comment convertir une requête wordpress en requête php

Posté : 05 déc. 2021, 16:54
par @rthur
Il faut que tu te connectes à la base de données utilisées par wordpress, et ensuite tu effectues la requête avec PDO (c'est la même requête mais il ne faut pas oublier de définir les variables comme $wpdb->prefix.


Sinon tu peux peut être regarder aussi du côté de l'API de Wordpress pour voir si il ne serait pas possible de récupérer facilement ce que tu veux via un simple appel REST

Re: comment convertir une requête wordpress en requête php

Posté : 05 déc. 2021, 17:14
par flexi2202
Merci @rthur pour ton aide
j'ai bien réussi a me connecter a la base de donnée de wordpress avec PDO
attention je suis nul ...donc c'est déjà un défit ...
j'ai également redéfini les variables

Code : Tout sélectionner

global $wpdb; $ID_CATEGORY = 10; $query = $wpdb->prepare("SELECT wp_users.ID, wp_users.display_name as user_nicename, COUNT(*) as count FROM wp_posts, wp_users, wp_term_relationships WHERE wp_posts.post_type='post' AND wp_posts.post_status='publish' AND wp_posts.post_author = wp_users.ID AND wp_posts.ID = wp_term_relationships.object_id AND wp_term_relationships.term_taxonomy_id = 10 GROUP BY post_author ORDER BY count DESC LIMIT 5 ;", $ID_CATEGORY); $results = $wpdb->get_results($query, OBJECT);
et mon code complet est ceci mais la page refuse de s afficher

Code : Tout sélectionner

<?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); try{ $bdd =new PDO("mysql:host=localhost;dbname=;charset=utf8", "", ""); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } global $bdd; $ID_CATEGORY = 10; $query = $bdd;->prepare("SELECT wp_users.ID, wp_users.display_name as user_nicename, COUNT(*) as count FROM wp_posts, wp_users, wp_term_relationships WHERE wp_posts.post_type='post' AND wp_posts.post_status='publish' AND wp_posts.post_author = wp_users.ID AND wp_posts.ID = wp_term_relationships.object_id AND wp_term_relationships.term_taxonomy_id = 10 GROUP BY post_author ORDER BY count DESC LIMIT 5 ;", $ID_CATEGORY); $results = $bdd;->get_results($query, OBJECT);; if (!empty($results)) { //echo '<ul>'; echo'<div style="background-color: #ffffff;text-align:center;"><h2>Les sorties de pêche </h2></div>'; echo'<div style="width: 100%; height: 50px; overflow-y: scroll; scrollbar-color: rebeccapurple green; scrollbar-width: thin; background-color: #ffffff; margin-bottom: 0.25em; text-align:center; padding-left: 10px;">'; foreach ($results as $value) { //echo '<li>'; printf(_n('le membre <font color="#FF0527"><strong>%2$s </strong></font>a déjà posté <font color="#FF0527"><strong>%1$s </strong></font>journée de pêche', 'le membre <font color="#FF0527"><strong>%2$s</strong></font> a déjà posté <font color="#FF0527"><strong>%1$s </strong></font>journées de pêche', $value->count, 'text-domain'), number_format_i18n($value->count), $value->user_nicename); //echo '</li>'; echo'<br>'; } //echo '</ul>'; echo'</div>'; } ?>

Re: comment convertir une requête wordpress en requête php

Posté : 05 déc. 2021, 18:33
par flexi2202
je viens a présent d essayer ceci
mais j ai cette erreur
Fatal error: Uncaught Error: Function name must be a string in /home/u434600775/domains/pecheperle.be/public_html/phil/afficher-journee-total-pecheur.php:16 Stack trace: #0 {main} thrown in /home/u434600775/domains/pecheperle.be/public_html/phil/afficher-journee-total-pecheur.php on line 16

Code : Tout sélectionner

<?php error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); try{ $bdd =new PDO("mysql:host=localhost;dbname=;charset=utf8", "", ""); // Activation des erreurs PDO $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } global $bdd; $ID_CATEGORY = 10; $query = $bdd("SELECT wp_users.ID, wp_users.display_name as user_nicename, COUNT(*) as count FROM wp_posts, wp_users, wp_term_relationships WHERE wp_posts.post_type='post' AND wp_posts.post_status='publish' AND wp_posts.post_author = wp_users.ID AND wp_posts.ID = wp_term_relationships.object_id AND wp_term_relationships.term_taxonomy_id = %d GROUP BY post_author ORDER BY count DESC LIMIT 5 ;", $ID_CATEGORY); $results = $bdd->get_results($query, OBJECT); if (!empty($results)) { //echo '<ul>'; echo'<div style="background-color: #ffffff;text-align:center;"><h2>Les sorties de pêche </h2></div>'; echo'<div style="width: 100%; height: 50px; overflow-y: scroll; scrollbar-color: rebeccapurple green; scrollbar-width: thin; background-color: #ffffff; margin-bottom: 0.25em; text-align:center; padding-left: 10px;">'; foreach ($results as $value) { //echo '<li>'; printf(_n('le membre <font color="#FF0527"><strong>%2$s </strong></font>a déjà posté <font color="#FF0527"><strong>%1$s </strong></font>journée de pêche', 'le membre <font color="#FF0527"><strong>%2$s</strong></font> a déjà posté <font color="#FF0527"><strong>%1$s </strong></font>journées de pêche', $value->count, 'text-domain'), number_format_i18n($value->count), $value->user_nicename); //echo '</li>'; echo'<br>'; } //echo '</ul>'; echo'</div>'; } ?>

Re: comment convertir une requête wordpress en requête php

Posté : 06 déc. 2021, 06:01
par flexi2202
voila c est réglé , j avais la requete devant les yeux