Ausgangsschleife zur functionsrückgabe?

Ich arbeite an einer Shortcode-function, die ein Kategoriebild, einen Link zur Kategorie, die letzten drei Beiträge in dieser Kategorie und einen weiteren Link zur Kategorie zurückgibt. Siehe meinen Code unten:

add_shortcode('caticons_listing','bm_caticons_listing'); function bm_caticons_listing($atts) { extract( shortcode_atts( array( 'include' => '', 'exclude' => '', 'small' => 'true' ), $atts ) ); if ($atts['include']) $include = "&include=".$atts['include']; if ($atts['exclude']) $exclude = "&exclude=".$atts['exclude']; if ($atts['small'] == 'false') $small = "&small=false"; $listing_code .= ''; foreach(get_categories("orderby=name&order=ASC&hide_empty=0".$include.$exclude) as $category) { if (category_description($category->cat_ID)) { $desc = category_description($category->cat_ID); } else { $desc = "Coming soon!";} if ($category->count > 0) { $seemore = '
term_id ).'">See more.';} else {$seemore = '';} query_posts('cat='.$category->term_id.'&showposts=3'); $listing_code .= ''; } $listing_code .= '
'.get_cat_icon("echo=false".$small."&class=caticon&cat=".$category->cat_ID).'term_id ).'">

'.$category->cat_name.'

'.category_description($category->cat_ID).'
'; //$listing_code .= "I think I need a loop here."; $listing_code .= $seemore.'
'; return $listing_code; }

Mein Problem ist, dass ich mit der Art, wie die WP-Loop-Beispiele geschrieben werden, keine gute Möglichkeit finde, die drei letzten Posts als Links in einer Weise auszugeben, die als Variable gespeichert werden kann (um als Shortcode-Ausgabe zurückgegeben zu werden). . Jede Hilfe wäre willkommen. Vielen Dank!

Solutions Collecting From Web of "Ausgangsschleife zur functionsrückgabe?"

Zuerst muss query_posts() – es sollte nie für sekundäre Schleifen verwendet werden.

Versuchen Sie etwas wie folgt:

 $posts = get_posts( array( 'cat' => $category->term_id, 'numberposts' => 3, )); foreach( $posts as $post ) { $listing_code .= get_permalink( $post->ID ); //or whatever }