2013-08-19 4 views
2

Alors que la pile de wordpress pourrait répondre à cela, je pense que mon problème est plus à faire avec la logique PHP de base plutôt que d'un problème de wordpress.Afficher le dernier message de la catégorie

Mon problème est que mon code affiche chaque après d'une catégorie au lieu de simplement le poste dernier. Mon code doit être quelque chose comme foreach post dans cette catégorie, mais ce que je voudrais dire, c'est seulement afficher le dernier message.

$post_type = 'post'; 

$taxonomies = get_object_taxonomies((object) array('post_type' => $post_type)); 

foreach($taxonomies as $taxonomy) : 

    $terms = get_terms($taxonomy); 

    foreach($terms as $term) : 

     $args = array('taxonomy' => $taxonomy, 'term' => $term->slug, 'posts_per_page' => 1, 'orderby' => 'modified','category' => $str); 

     $posts = new WP_Query($args); 

     if($posts->have_posts()): while($posts->have_posts()) : $posts->the_post(); 
       if(has_term('double portrait','twin')) { 
       get_post(&$post, $output = OBJECT, $filter = 'raw') 
      } 
     endwhile; endif; 

    endforeach; 

endforeach; 
wp_reset_postdata(); 

Voici le code que j'ai pour le moment. Aide appréciée.

Répondre

0
$args = array(
'numberposts' => 10, 
'offset' => 0, 
'category' => 0, 
'orderby' => 'post_date', 
'order' => 'DESC', 
'post_type' => 'post', 
'post_status' => 'publish', 
'suppress_filters' => true); 

$recent_posts = wp_get_recent_posts($args, $output = ARRAY_A); 

Cela vous donnera 10 messages récents. Vous pouvez jouer avec $ args array pour différents résultats qui vous conviennent.

+0

Les points ne sont-ils pas obsolètes? – UzumakiDev

+0

"nombre de points" pourrait être déprécié (car je n'ai pas cette information), mais cela fonctionne parfaitement. Il doit y avoir une alternative fournie par l'équipe WP :) –

0

Un moyen facile, et sans beaucoup de changement, vous pouvez briser le temps après la première itération, à savoir:

if($posts->have_posts()): while($posts->have_posts()) : $posts->the_post(); if(has_term('double portrait','twin')) { get_post(&$post, $output = OBJECT, $filter = 'raw'); break; } endwhile; endif;

Vous pouvez envisager d'utiliser cette fonction aussi: <?php wp_get_recent_posts($args, $output) ?>

Il y a plus d'info ici: http://codex.wordpress.org/Function_Reference/wp_get_recent_posts

+0

Merci pour la réponse, je vais donner qu'un aller et de faire rapport :) – UzumakiDev

+0

oui, laissez-moi savoir l'homme! –

0
$args = array(
     'posts_per_page' => 1, 
     'orderby' => 'modified', 
     'category_name' => $str, 
     'post_status' => 'publish', 
     'tax_query' => array(
      array(
      'taxonomy' => 'twin', 
      'field' => 'slug', 
      'terms' => array('double portrait','landscape') 
     ) 
     ) 
    ); 
     $myPosts = get_posts($args); 
     foreach ($myPosts as $post) : 
     setup_postdata($post); 
     echo get_template_part('twin-feature'); ?> 

    <?php endforeach; wp_reset_postdata(); ?> 
Questions connexes