_x('Speciali', 'taxonomy general name'), 'singular_name' => _x('Speciale', 'taxonomy singular name'), 'all_items' => __('Tutti gli speciali'), 'edit_item' => __('Modifica speciale'), 'update_item' => __('Aggiorna speciale'), 'add_new_item' => __('Aggiungi un nuovo speciale'), 'new_item_name' => __('Nuovo speciale'), 'menu_name' => __('Speciali'), ); register_taxonomy( 'speciali', array('post'), /* per estendere array('post','page','custom-post-type') */ array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'query_var' => true, 'rewrite' => array('slug' => 'speciali'), ) ); } add_action('init', 'speciali_tax', 0); # shortcode per la creazione della griglia per la pagina degli speciali function grigliaspeciali($atts) { global $post; extract( shortcode_atts( array( 'speciale' => 'null', ), $atts ) ); $q = new WP_Query( array( 'speciali' => $speciale, 'posts_per_page'=>-1 ) ); $content = '

'; if ( $q->have_posts() ) { while ( $q->have_posts() ) { $q->the_post(); $titolo = get_the_title(); if ( function_exists( 'get_coauthors' ) ) { $autori = coauthors_posts_links(", ", " e ", null, null, false); } else {$autori = the_author();} $estratto = get_the_excerpt(); $header = '

'.$titolo.'


'; $content .= $header.'

di '.$autori.'
'.$estratto.'
(continua)

'; } $content = $content.'

'; /* ripristino */ wp_reset_postdata(); } return $content; } add_shortcode( 'grigliaspeciali', 'grigliaspeciali' ); #shortcode per mostrare in una tabella l'elenco degli articoli di uno speciale: da utilizzare in un widget di testo in attesa di creare un widget vero e proprio function specialishort($atts) { global $post; extract( shortcode_atts( array( 'speciale' => 'null', ), $atts ) ); #tutti i termini associati all'eventuale speciale associato al post $term_list = wp_get_post_terms($post->ID, 'speciali', array("fields" => "all")); #estrazione del nome dello speciale associato al post $nomespeciale = $term_list[0]->name; if ($nomespeciale <> $speciale) { $content = null; } else { $q = new WP_Query( array( 'speciali' => $speciale, 'posts_per_page'=>-1 ) ); $header = '
Speciale '.$speciale.'
'; if ( $q->have_posts() ) { while ( $q->have_posts() ) { $q->the_post(); $titolo = get_the_title(); if ( function_exists( 'get_coauthors' ) ) { $autori = coauthors_posts_links(", ", " e ", null, null, false); } else { $autori = the_author(); } $estratto = get_the_excerpt(); $content .= '
'; } $content = $content.'

'; /* ripristino */ wp_reset_postdata(); } } $content = '

'.$header.$content.'

'; return $content; } add_shortcode( 'specialishort', 'specialishort' );