10 Utili Tecniche di Codifica per Wordpress (2/2)
Questo post è la continuazione di un post precedente. Se non lo hai ancora visto vai all’articolo per visionare la prima parte.
6. AGGIUNGERE MOLTEPLICI SIDEBARS
Il problema.
Le sidebars sono utili perché consentono di visualizzare un sacco di informazioni, come post, info autore, link, spazi pubblicitari 125 × 125 pixel e così via. Ma una sidebars può rapidamente diventare piena, e i lettori possono trovarsi in difficoltà nel trovare ciò che stanno cercando.
La soluzione.
Per applicare questo hack, bisogna duplicare il file sidebar.php e riempirlo con tutte le informazioni che desideri far visualizzare. Dopo salva il file come “sidebar-whatever.php”.
Una volta fatto, apri il file single.php e trova la riga con la funzione get_sidebar () :
<?php get_sidebar(); ?>
Sostituiscila con:
- <?php $sidebar = get_post_meta($post->ID, “sidebar”, true);
- get_sidebar($sidebar);
- ?>
Ora, quando si scrive un post, devi creare un campo personalizzato chiamato sidebar. Imposta il suo valore come il nome della barra laterale che vuoi includere. Se il suo valore è giusto, WordPress includerà automaticamente sidebar-right.php come una sidebar.
Se non si trova nessun campo sidebar personalizzato, WordPress include automaticamente la sidebar di default.
Spiegazione del codice.
Questo trucco è molto semplice. La prima cosa che abbiamo fatto è stata di cercare un campo personalizzato chiamato sidebar e ottenere il suo valore come variabile. Poi, la variabile viene usata come parametro per la funzione di Wordpress get_sidebar (), che ci permette di specificare un file particolare, da utilizzare come una barra laterale.
7. VISUALIZZARE I CONTENUTI SOLO AGLI UTENTI REGISTRATI
Il problema.
Come probabilmente saprai, WordPress permette di decidere ai lettori di creare un account e accedere al tuo blog. Se desideri aumentare i lettori registrati del tuo blog o vuoi solamente premiare i lettori più fedeli, perché non mantenere un po’ di contenuto privato solo per loro?
La soluzione.
Per raggiungere questo hack, useremo un shortcode. Il primo passo è quello di crearlo. Apri il file functions.php e incollare il seguente codice:
- function member_check_shortcode($atts, $content = null) {
- if (is_user_logged_in() && !is_null($content) && !is_feed()) {
- return $content;
- } else {
- return ‘Sorry, this part is only available to our members. Click here to become a member!’;
- }
- add_shortcode(‘member’, ‘member_check_shortcode’);
Una volta fatto ciò, è possibile aggiungere il seguente codice ai tuoi post, cosi da creare una sezione o un testo (o qualsiasi altro contenuto) che verrà visualizzato solo agli utenti registrati:
- [member]
- This text will be displayed only to registered users.
- [/member]
Gli utenti registrati vedranno il testo contenuto nel shortcode, mentre gli utenti non registrati vedranno visualizzato un messaggio che chiede loro di registrarsi.
Spiegazione del codice.
La prima cosa che abbiamo fatto è creare una funzione denominata member_check_shortcode, che controlla se l’ utente corrente è connesso. Se lo è, il testo contenuto nella sezione [membri] del shortcode viene visualizzato. In caso contrario, verà visualizzato il messaggio indicato sulla linea 5 del codice.
8. VISUALIZZARE I CONTENUTI PIU’ POPOLARI NELLA SIDEBAR
Il problema.
Se desideri far visualizzare i tuoi contenuti migliori e aiutare i lettori a scoprire i migliori articoli del tuo blog, potresti voler visualizzare nella sidebar, un elenco dei tuoi post più popolari, in base al numero dei commenti che ha ricevuto.
La soluzione.
Questo codice è molto semplice da attuare. Basta incollarlo ovunque desideri far comparire i post. Per ottenere più o meno di cinque post, è sufficiente modificare il valore di limite sulla linea 3 del codice.
- <h2>Popular Posts</h2>
- <ul>
- <?php $result = $wpdb->get_results(“SELECT comment_count,ID,post_title FROM $wpdb->
- posts ORDER BY comment_count DESC LIMIT 0 , 5″);
- foreach ($result as $post) {
- setup_postdata($post);
- $postid = $post->ID;
- $title = $post->post_title;
- $commentcount = $post->comment_count;
- if ($commentcount != 0) { ?>
- <li><a href=”<?php echo get_permalink($postid); ?>” title=”<?php echo $title ?>”>
- <?php echo $title ?></a> {<?php echo $commentcount ?>}</li>
- <?php } } ?>
- </ul>
Spiegazione del codice.
In questo codice, si utilizza l’oggetto $wpdb per inviare una query SQL personalizzata al database WordPress. Poi abbiamo verificato che i risultati non sono vuoti (cioè post senza commenti), e infine abbiamo visualizzato l’elenco dei post.
9. CREARE UN SEMPLICE MENU PER NAVIGARE TRA I TAG
Il problema.
I tag sono cool, perché permettono di catalogare i contenuti usando dei termini precisi. Ma la visualizzazione della tag clouds è spesso un problema: sono brutti, non facili da usare e possono essere molto grandi.
Quindi, qual è la soluzione? Basta creare un menù a discesa per i tag. In questo modo, la gente avrà un facile accesso ai tag.
La soluzione.
Per creare il nostro menù a discesa delle etichette, dobbiamo prima di tutto, incollare le due funzioni qui di seguito nel file “functions.php” del nostro tema Wordpress:
- <?php
- function dropdown_tag_cloud( $args = ” ) {
- $defaults = array(
- ’smallest’ => 8, ‘largest’ => 22, ‘unit’ => ‘pt’, ‘number’ => 45,
- ‘format’ => ‘flat’, ‘orderby’ => ‘name’, ‘order’ => ‘ASC’,
- ‘exclude’ => ”, ‘include’ => ”
- );
- $args = wp_parse_args( $args, $defaults );
- $tags = get_tags( array_merge($args, array(‘orderby’ => ‘count’, ‘order’ => ‘DESC’)) ); // Always query top tags
- if ( emptyempty($tags) )
- return;
- $return = dropdown_generate_tag_cloud( $tags, $args ); // Here’s where those top tags get sorted according to $args
- if ( is_wp_error( $return ) )
- return false;
- else
- echo apply_filters( ‘dropdown_tag_cloud’, $return, $args );
- }
- function dropdown_generate_tag_cloud( $tags, $args = ” ) {
- global $wp_rewrite;
- $defaults = array(
- ’smallest’ => 8, ‘largest’ => 22, ‘unit’ => ‘pt’, ‘number’ => 45,
- ‘format’ => ‘flat’, ‘orderby’ => ‘name’, ‘order’ => ‘ASC’
- );
- $args = wp_parse_args( $args, $defaults );
- extract($args);
- if ( !$tags )
- return;
- $counts = $tag_links = array();
- foreach ( (array) $tags as $tag ) {
- $counts[$tag->name] = $tag->count;
- $tag_links[$tag->name] = get_tag_link( $tag->term_id );
- if ( is_wp_error( $tag_links[$tag->name] ) )
- return $tag_links[$tag->name];
- $tag_ids[$tag->name] = $tag->term_id;
- }
- $min_count = min($counts);
- $spread = max($counts) - $min_count;
- if ( $spread <= 0 )
- $spread = 1;
- $font_spread = $largest – $smallest;
- if ( $font_spread <= 0 )
- $font_spread = 1;
- $font_step = $font_spread / $spread;
- // SQL cannot save you; this is a second (potentially different) sort on a subset of data.
- if ( ‘name’ == $orderby )
- uksort($counts, ’strnatcasecmp’);
- else
- asort($counts);
- if ( ‘DESC’ == $order )
- $counts = array_reverse( $counts, true );
- $a = array();
- $rel = ( is_object($wp_rewrite) && $wp_rewrite->using_permalinks() ) ? ‘ rel=”tag”‘ : ”;
- foreach ( $counts as $tag => $count ) {
- $tag_id = $tag_ids[$tag];
- $tag_link = clean_url($tag_links[$tag]);
- $tag = str_replace(‘ ’, ‘ ’, wp_specialchars( $tag ));
- $a[] = “\t<option value=’$tag_link’>$tag ($count)</option>”;
- }
- switch ( $format ) :
- case ‘array’ :
- $return =& $a;
- break;
- case ‘list’ :
- $return = “<ul class=’wp-tag-cloud’>\n\t<li>”;
- $return .= join(“</li>\n\t<li>”, $a);
- $return .= “</li>\n</ul>\n”;
- break;
- default :
- $return = join(“\n”, $a);
- break;
- endswitch;
- return apply_filters( ‘dropdown_generate_tag_cloud’, $return, $tags, $args );
- }
- ?>
Una volta che hai incollato questa funzione nel file functions.php, puoi utilizzarlo per creare il menu a discesa dei tag. Basta aprire il file in cui si desidera visualizzare l’elenco e incollare il seguente codice:
- <select name=”tag-dropdown” onchange=”document.location.href=this.options[this.selectedIndex].value;”>
- <option value=”#”>Liste d’auteurs</option>
- <?php dropdown_tag_cloud(‘number=0&order=asc’); ?>
- </select>
Spiegazione del codice.
Per raggiungere questo hack, si prendiamo la funzione di Wordpress “wp_tag_cloud ()”, e la si riscrive per farla visualizzare in un elemento HTML tag “Select”.
Poi, basta richiamare il dropdown_tag_cloud appena creato () nel nostro tema per visualizzare il menu a discesa.
10. RIDIMENSIONARE AUTOMATICAMENTE LE IMMAGINI USANDO TIMTHUMB E I CODICI BREVI DI WORDPRESS
Il problema.
Un buon post di un blog ha bisogno di immagini. I lettori preferiscono sempre articoli con belle fotografie rispetto al normale testo.
Però le immagini possono essere un problema da affrontare, soprattutto a causa delle loro diverse dimensioni.
La soluzione.
La prima cosa da fare è creare il shortcode. Incolla il seguente codice nel file functions.php:
- function imageresizer( $atts, $content = null ) {
- return ‘<img src=”http://media1.smashingmagazine.com/wp-content/uploads/2009/10//timthumb/timthumb.php?src=’.$content.’&w=590″ alt=”" />’;
- }
- add_shortcode(‘img’, ‘imageresizer’);
Ora, è possibile utilizzare la seguente sintassi per aggiungere un’immagine ridimensionata automaticamente al tuo post del blog:
- [img]http://www.yoursite.com/yourimage.jpg[/img]
Spiegazione del codice.
Probabilmente avrai già notato come i codici brevi di WordPress rendono la vita più facile al tuo blog. Questo codice crea semplicemente un shortcode che accetta un unico parametro: l’ URL dell’ immagine. Nota che non è una buona idea per ridimensionare le immagini di grandi dimensioni, in quanto aumenta inutilmente il carico del server. In questi casi è meglio creare e caricare immagini più piccole.
TimThumb ridimensiona l’immagine a 590 pixel di larghezza, come specificato sulla linea 2 (w = 590). Naturalmente, è possibile cambiare questo valore o aggiungere un parametro di altezza (ad esempio h = 60).
Popularity: 14%























