2009-09-06 11 views
1

J'avais posté ceci plus tôt sur Stack Overflow, mais je n'ai pas pu obtenir un résultat positif. Je pensais que je devrais refaire ça.php wordpress query

<?php require_once 'news/wp-config.php'; 
$howMany = 0; 
$query ="SELECT `ID`, `post_title`,'post_category', `guid`,SUBSTRING_INDEX(`post_content`, ' ', 100) AS `post_excerpt` FROM $wpdb->posts WHERE `post_status`= \"publish\" AND `post_type` = \"post\" AND post_category != \"1\" "; 
$posts = $wpdb->get_results($query); 
$posts = array_reverse($posts); 
foreach($posts as $post) 
{ 
    if($howmany<10) 
    { 
     $link = $post->guid; 
     echo "<li><a target='_blank' href='$link'>$post->post_title</a></li>"; 
     $howmany++; 
    } 

}     
?> 

Je veux que le code ci-dessus de ne pas afficher les messages de la catégorie 1. Je pense que je l'ai fait tout droit, mais je ne peux pas obtenir le résultat que je veux.

Encore une chose est que si je demande même explicitement à la requête d'afficher les messages de la catégorie 3 ou 4, cela n'arrive pas. Il finit par afficher des messages de toutes les catégories.

+0

est votre identifiant de catégorie de type «char»? J'imagine que ça devrait être une sorte de 'int'. – SilentGhost

+0

et vous ne l'auriez pas fait à nouveau. Il serait préférable que vous mettiez à jour votre question initiale en essayant de la résoudre. – SilentGhost

+0

Je suis désolé pour ça. mais il n'obtenait pas la bonne réponse. Je suis vraiment coincé là-dessus. et le post original a été fait il y a environ un mois ... – amit

Répondre

2

Vous devez utiliser la fonction query_posts(). Si non, au moins se débarrasser de cette variable $ howMany et à la place ajouter "LIMIT 10" à votre requête sql.

Voici un exemple d'obtenir une catégorie pour la boucle préparée:

<?php 
    // Borrowed heavily from link above... 
    $categoryvariable=1; // assign the variable as current category 
    $numposts = 10; 
    // Set up the query 
    $query= 'cat=' . $categoryvariable. '&orderby=date&order=ASC&showposts='.$numposts;  
    query_posts($query); // run the query 

//The Loop 
if (have_posts()) : while (have_posts()) : the_post(); 
    // Do all your echo stuff here 
endwhile; else: 

endif; 

//Reset Query 
wp_reset_query(); 

?> 
+0

pouvez-vous s'il vous plaît me montrer comment ...? – amit

+0

merci beaucoup. vous avez beaucoup aidé. – amit