Выходной цикл для функции возврат?
Вопрос
Я работаю над функцией шорткода, которая возвращает изображение категории, ссылку на категорию, последние три сообщения в этой категории и еще одну ссылку на категорию. Смотрите мой код ниже:
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;
}
Моя проблема заключается в том, как написаны примеры цикла WP, я не могу найти хороший способ вывести три последних сообщения в виде ссылок таким образом, чтобы можно было хранить в качестве переменной (для возврата в качестве вывода короткометражного кода) Анкет Любая помощь будет оценена. Спасибо!
Решение
Во -первых, нужно проиграть query_posts()
- Его никогда не следует использовать для вторичных петлей.
Попробуйте что -то вроде этого:
$posts = get_posts( array(
'cat' => $category->term_id,
'numberposts' => 3,
));
foreach( $posts as $post ) {
$listing_code .= get_permalink( $post->ID ); //or whatever
}
Не связан с wordpress.stackexchange