loop di uscita di ritorno la funzione?
Domanda
Sto lavorando a una funzione shortcode che restituisce un'immagine di categoria, un link alla categoria, gli ultimi tre posti in quella categoria, e un altro collegamento alla categoria. Vedere il mio codice qui sotto:
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 .= '<table class="cat-nav">';
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 = '<br /><a href="'.get_category_link( $category->term_id ).'">See more.</a>';}
else {$seemore = '';}
query_posts('cat='.$category->term_id.'&showposts=3');
$listing_code .= '<tr><td>'.get_cat_icon("echo=false".$small."&class=caticon&cat=".$category->cat_ID).'</td><td valign="top" style="padding: 5px;"><a href="'.get_category_link( $category->term_id ).'"><h2 style="font-size: 130%;">'.$category->cat_name.'</h2></a>'.category_description($category->cat_ID).'<br />';
//$listing_code .= "I think I need a loop here.";
$listing_code .= $seemore.'</td></tr>';
}
$listing_code .= '</table>';
return $listing_code;
}
Il mio problema è, con il modo in cui gli esempi di loop WP sono scritte, non riesco a capire un buon modo per emettere i tre ultimi messaggi come collegamenti in modo che possono essere memorizzati come una variabile (da restituire come il uscita shortcode). Qualsiasi aiuto sarebbe apprezzato. Grazie!
Soluzione
In primo luogo, hanno bisogno di perdere query_posts()
-. Non dovrebbe mai essere utilizzato per circuiti secondari
provare qualcosa di simile:
$posts = get_posts( array(
'cat' => $category->term_id,
'numberposts' => 3,
));
foreach( $posts as $post ) {
$listing_code .= get_permalink( $post->ID ); //or whatever
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange