_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','astrodidattica'), /* 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, 'tipo' => null, ), $atts ) ); if ( $tipo == null ) { $tipo = 'post'; } $q = new WP_Query( array( 'speciali' => $speciale, 'post_type'=> $tipo, 'posts_per_page'=>-1 ) ); $contentblu ='
'; if ( $q->have_posts() ) { while ( $q->have_posts() ) { $q->the_post(); $titolo = get_the_title(); if ( $tipo == 'post' ) { if ( function_exists( 'get_coauthors' ) ) { $autori = coauthors_posts_links(", ", " e ", null, null, false); } else { $autori = the_author(); } } else { $autori = null; } if ( $autori <> null ) { $auth = 'di '.$autori.'
'; } else { $auth = null; } $estratto = get_the_excerpt(); /* griglia con titolo ed estratto: stilizzazione minimale */ $header = '

'.$titolo.'

'; /* griglia con titolo ed estratto: formato tabella */ $headerblu = '
'.$titolo.'
'; $contentblu .= $headerblu.'
'.$auth.$estratto.'
(continua)
'; } $contentblu = $contentblu.'
'; /* ripristino */ wp_reset_postdata(); } else { $contentblu = null; } return $contentblu; } add_shortcode( 'grigliaspeciali', 'grigliaspeciali' ); # nuovo shortcode per listare nella barra gli articoli di uno speciale function tabspeciali($atts) { global $post; extract( shortcode_atts( array( 'speciale' => 'null', ), $atts ) ); #tutti i termini associati all'eventuale speciale associato al post $terms = get_the_terms ( $post->ID, 'speciali' ); foreach ( $terms as $term ) { $term_link = get_term_link( $term, 'speciali' ); $toc = $term->slug; if ( $toc <> $speciale ) { $content = null; } else { $q = new WP_Query( array( 'speciali' => $speciale, 'posts_per_page'=>-1 ) ); $header = '

Gli articoli dello speciale '.$term->name.'

'; if ( $q->have_posts() ) { while ( $q->have_posts() ) { $q->the_post(); $titolo = get_the_title(); $content .= '
  • '.$titolo.'
  • '; } /* ripristino */ wp_reset_postdata(); } $content = '
    '.$header.'
    '; } } $content = $content.$after_widget; if ( get_post_type() == 'post' ) { $out = $content; } else { $out = null; } return $out; } add_shortcode( 'tabspeciali', 'tabspeciali' );