Wordpress mu : Sélèctionner certains blogs uniquement

Toutes les questions et les aides qui concernent le langage PHP
Avatar de l’utilisateur
twin
Tutomaker Apprenti
Tutomaker Apprenti
 
Messages: 51
Enregistré le: Mar Aoû 19, 2008 3:53 pm
Localisation: Sur le serveur

Wordpress mu : Sélèctionner certains blogs uniquement

Messagepar twin le Mar Sep 16, 2008 6:42 pm

Salut,

Je reviens vers vous avez toujours le même bout de code que dans le topic : Convertir encodage des caractéres UTF8 et ISO8859-1

Actuellement le fichier Commentaire.php ressemble à çà
Mon problème, c'est qu'il affiche les commentaires de TOUS les blogs de Wordpress MU; hors je souhaite afficher uniquement les commentaires d'une dizaine de blog. Comment choisir uniquement certains blog ?

Voilà le code de commentaires.php :
Code: Tout sélectionner
<?php
    header
('Content-Type: text/html; charset=iso-8859-1'); 
/* Ne tentez pas de créer ce fichier à la main !!! Lisez le fichier README.txt et lancez l'assistant d'instalaltion. */
// ** MySQL settings ** //
define('DB_NAME', 'xxx');    // The name of the database
define('DB_USER', 'xxx');     // Your MySQL username
define('DB_PASSWORD', 'xxx'); // ...and password
define('DB_HOST', 'xxx');    // 99% chance you won't need to change this value
define('DB_CHARSET', 'ISO-8859-1');
define('DB_COLLATE', '');
define('VHOST', 'no'); 
$base 
= '/';
// double check $base
if( $base == 'BASE' )
    die( 'Problème avec le fichier wp-config.php - La variable $base est définie avec la constante BASE lorsuque vous utilisez les URLs comme "/" ou "/blogs/"! Merci de corriger cela!' );
// You can have multiple installations in one database if you give each a unique prefix
$table_prefix  = 'wp_';   // Only numbers, letters, and underscores please!

// Change this to localize WordPress.  A corresponding MO file for the
// chosen language must be installed to wp-content/languages.
// For example, install de.mo to wp-content/languages and set WPLANG to 'de'
// to enable German language support.
define('WPLANG', 'fr_FR');
// uncomment this to enable wp-content/sunrise.php support
//define( 'SUNRISE', 'on' );

define( "WP_USE_MULTIPLE_DB", false );

/* That's all, stop editing! Happy blogging. */

define('ABSPATH', dirname(__FILE__).'/');
require_once(
ABSPATH.'wp-settings.php');
?>
<?php
//What blogs where last updated, lets grab a bunch at first.
$blogs = $wpdb->get_col("SELECT blog_id FROM $wpdb->blogs WHERE domain!='toileblogs.com' AND public = 1 AND last_updated!='0000-00-00 00:00:00' ORDER BY last_updated DESC LIMIT 10 ");

$tables = array();
foreach ($blogs as $blog) {
// we need _posts and _options tables for this to work
$blogOptionsTable = "wp_".$blog."_options";
$blogPostsTable = "wp_".$blog."_posts";
$blogCatTable = "wp_".$blog."_post2cat";
//add to array for later use
$table = array ($blog, $blogPostsTable, $blogOptionsTable, $blogCatTable );
$tables[] = $table; //push into tables
}

//now lets pull out 10 recent posts from each blog
$postresults = array();
foreach ($tables as $t) {
$postitems = $wpdb->get_results("SELECT ID,post_title,guid,post_content,comment_count,post_date_gmt FROM $t[1] WHERE post_status = 'publish' AND guid != '' ORDER BY id DESC LIMIT 0,10");
//push into array, had $postresults[] = $postitems;, but didn't work?

if ($postitems) {
foreach ($postitems as $postitem) {
$col = array($postitem->ID,$postitem->post_title,$postitem->guid,$postitem->post_content,$postitem->comment_count,$postitem->post_date_gmt,$t[0]);
$postresults[] = $col;
}
}
}

function cutpost($text) { // Fakes an excerpt if needed

$text = apply_filters('the_content', $text);
$text = str_replace(']]>', ']]>', $text);
$text = strip_tags($text);
$excerpt_length = 30;
$words = explode(' ', $text, $excerpt_length + 1);
if (count($words) > $excerpt_length) {
array_pop($words);
array_push($words, '[...]');
$text = implode(' ', $words);
}
return $text;
}
function cmp($a,$b) {
$at = strtotime($a[5]);
$bt = strtotime($b[5]);
if(
$at == $bt)
return(
0);
if(
$at < $bt)
return(
1);
else
return(-
1);
}

usort($postresults, 'cmp');
$postresults = array_slice($postresults, 0,10); //limit number of results

foreach ($postresults as $postresult) {
$siteurl = $wpdb->get_col("SELECT option_value FROM wp_". $postresult[6] ."_options WHERE option_name='siteurl'");
$blogname = $wpdb->get_col("SELECT option_value FROM wp_". $postresult[6] ."_options WHERE option_name='blogname'");

//todo - this is an array, need to sort and pull out
//$catitems = $wpdb->get_col("SELECT category_id FROM wp_".$postresult[6]."_post2cat WHERE $postitems->ID ORDER BY category_id");


           
?>
<?php
$postresult
[1] = "$postresult[1]";
$postresult[1] = strtolower($postresult[1]);
$postresult[1] = ucfirst($postresult[1]); 
?>
<a href="<?php echo $postresult[2]; ?>" rel="bookmark" title='Blog F1 : "<?php echo $postresult[1]; ?>"' target="_blank"><?php echo utf8_decode ($postresult[1]); ?></a> <br>



<?php } ?>


Je ne sais pas si beaucoup utilise wordpressMU. J'ai posé la question sur le forum officiel en français, et aucune réponse pour l'instant.

Avatar de l’utilisateur
Yoyo
Gérant
Gérant
 
Messages: 2031
Enregistré le: Mer Sep 27, 2006 4:54 pm

Re: Wordpress mu : Sélèctionner certains blogs uniquement

Messagepar Yoyo le Mar Sep 16, 2008 8:45 pm

Salut, je ne vois qu'une dizaine de liens sur ton lien vers commentaires.php. Ce n'est pas ce que tu veux ? Si non, peux-tu réexpliquer ? Pour info j'ai jamais bossé avec wordpress MU :)
Vive les tutomakers ;)

Avatar de l’utilisateur
twin
Tutomaker Apprenti
Tutomaker Apprenti
 
Messages: 51
Enregistré le: Mar Aoû 19, 2008 3:53 pm
Localisation: Sur le serveur

Re: Wordpress mu : Sélèctionner certains blogs uniquement

Messagepar twin le Mar Sep 16, 2008 8:55 pm

En fait, je souhaite afficher les 10 derniers articles de 10 blogs. Actuellement, les commentaires affichés proviennent de tous les blogs (plusieurs centaines).

Je souhaite que sur cette page, il y a uniquement les articles de 10 blogs que je sélectionne (grâce à leurs ID ?).

Difficile d'expliquer plus facilement :?

Avatar de l’utilisateur
Yoyo
Gérant
Gérant
 
Messages: 2031
Enregistré le: Mer Sep 27, 2006 4:54 pm

Re: Wordpress mu : Sélèctionner certains blogs uniquement

Messagepar Yoyo le Mar Sep 16, 2008 10:08 pm

Code: Tout sélectionner
$postitems $wpdb->get_results("SELECT ID,post_title,guid,post_content,comment_count,post_date_gmt FROM $t[1] WHERE post_status = 'publish' AND guid != '' ORDER BY id DESC LIMIT 0,10");
 

Tu rajoutes un condition pour qu'il prenne que les ID que tu veux alors ? :o
Vive les tutomakers ;)

Avatar de l’utilisateur
twin
Tutomaker Apprenti
Tutomaker Apprenti
 
Messages: 51
Enregistré le: Mar Aoû 19, 2008 3:53 pm
Localisation: Sur le serveur

Re: Wordpress mu : Sélèctionner certains blogs uniquement

Messagepar twin le Mar Sep 16, 2008 10:10 pm

Merci pour ce premier élément de réponse. Mais où écrire les numéro des blogs que je souhaite ?

Avatar de l’utilisateur
Yoyo
Gérant
Gérant
 
Messages: 2031
Enregistré le: Mer Sep 27, 2006 4:54 pm

Re: Wordpress mu : Sélèctionner certains blogs uniquement

Messagepar Yoyo le Mar Sep 16, 2008 11:05 pm

Je ne connais pas les tables utilisées par wordpress mais tu dois avoir un truc du genre à rajouter dans le WHERE de ta requête:

Code: Tout sélectionner
Id_blog IN (1,5,9,4
Vive les tutomakers ;)

Avatar de l’utilisateur
twin
Tutomaker Apprenti
Tutomaker Apprenti
 
Messages: 51
Enregistré le: Mar Aoû 19, 2008 3:53 pm
Localisation: Sur le serveur

Re: Wordpress mu : Sélèctionner certains blogs uniquement

Messagepar twin le Mar Sep 16, 2008 11:13 pm

Cool, je test çà dans la soirée où demain et je te tiens au jus ;)
Merci beaucoup pour ton aide

Avatar de l’utilisateur
Yoyo
Gérant
Gérant
 
Messages: 2031
Enregistré le: Mer Sep 27, 2006 4:54 pm

Re: Wordpress mu : Sélèctionner certains blogs uniquement

Messagepar Yoyo le Mar Sep 16, 2008 11:31 pm

J'ai pris un nom de champ au hasard hein, pour avoir le nom du champ exact, il faut regarder dans les tables sql de wordpress pour trouver le nom du champ qui identifie le blog. Ensuite tu feras WHERE lenomduchampquiidentifieleblog IN (tes numeros)
Vive les tutomakers ;)



Retourner vers Langage PHP

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité