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!

È stato utile?

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
scroll top