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