Wordpress: migliorare la lista dei commenti

Mercoledì 22 Ottobre, 2008

Il template standard di Wordpress (come altri) normalmente preve un layout alternato per la lista dei commenti. Nel template standard di esempio è impostata una classe css alt, secondo la logica:

PHP:
  1. // file comments.php
  2. <li <?php echo $oddcomment; ?>id="comment-<?php comment_ID() ?>">
  3. [...]
  4. /* Changes every other comment to a different class */
  5. $oddcomment = ( empty( $oddcomment ) ) ? 'class="alt" ' : '';

Questo fa si che nel tag li $oddcomment sia impostato una volta a vuoto ("") e una volta a class="alt". Una modifica utile potrebbe essere quella di introdurre un ulteriore classe quando è l'autore del blog a commentare un post:

image

Io, ad esempio, ho usato il seguente codice nel file comments.php:

PHP:
  1. <?php
  2.     $authcomment = ($comment->user_id==3)?' authcomment':'';
  3.     $classcomment = ( empty( $classcomment ) ) ? ( ($authcomment=='')?' alt':'' ) : ''
  4. ?>
  5. <li class="<?=$classcomment?><?=$authcomment?>" id="comment-<?php comment_ID() ?>">

La riga $comment->user_id==3 può variare in base all'ID del vostro utente. Io, ad esempio, non uso l'amministratore per rispondere sul blog, ma ho un mio utente con ID=3. Normalmente l'ID dell'amministratore è 1, se usate questa utenza potete scrivere: $comment->user_id==1. In questo modo oltre ad avere l'alternanza di layout sui commenti lasciati dai visitatori, risulta immediatamente riconoscibile la risposta dell'autore del blog.

Post correlati

Usare i Template WordPress per creare una Sitemap

Mercoledì 16 Luglio, 2008

Esiste una funzionalità in WordPress, a volte trascurata, che lo rende davvero molto versatile, soprattutto per chi crea temi: l'uso dei Template! Un Template non è altro che un file inserito nella cartella del tema. Per identificarlo come Template basta inserire all'inizio del file un particolare commento in PHP:

PHP:
  1. /*
  2. Template Name: Sitemap
  3. */

Sfruttando questa caratteristica è possibile creare una pagina vuota, con il procedimento standard di WordPress, e collegarla al nostro template. Se create un file, ad esempio sitemap.php (aggiungendo quel commento indicato più sopra) e lo caricate all'interno della cartella del vostro tema, noterete che nell'editor WordPress durante la creazione di una pagina (non di un post) il menu Template (in basso) conterrà il nome del file template caricato. Come indicato nella sezione template:

Alcuni temi hanno dei template personalizzati da poter utilizzare per determinate pagine, che possono contenere funzionalità aggiuntive o una grafica personalizzata. [...]

Io, ad esempio, ho sfruttato questa caratteristica per creare una pagina dinamica (che esegue quindi codice PHP) in grado di mostrare una vera e propria sitemap del blog.

Creazione di una pagina Sitemap

Prima di tutto create una file sitemap.php e caricatelo all'interno della cartella del vostro tema. Dall'amministrazione di Wordpress create una nuova pagina, dategli un nome e selezionate il Template dal menu che si trova sotto l'editor! Finito!

Il template, facendo parte del tema, contiene anche tutta la struttura del tema stesso ed è quindi importante saperlo scrive in modo corretto. Tuttavia ecco uno scheletro di una sitemap che potete modificare in base al tema che avete installato:

HTML:
  1. <?php
  2. /*
  3. Template Name: Sitemap
  4. */
  5. ?>
  6. <?php get_header(); ?>
  7.     <div id="content">
  8.     <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
  9.         <div class="post" id="post-<?php the_ID(); ?>">
  10.         <h2><?php the_title(); ?></h2>
  11.         <small class="date-time"><?php the_time('l j F, Y') ?></small>
  12.             <div class="entry">  
  13.                 <p><strong><a href="<?php bloginfo('url'); ?>" alt="<?php bloginfo('name'); ?>">Home</a></strong></p>
  14.                 <h4>Pagine</h4>
  15.                 <ul>
  16.                     <?php wp_list_pages('title_li='); ?>
  17.                 </ul>
  18.                 <h4>Post</h4>
  19.                 <ul>
  20.                     <?php $archive_query = new WP_Query('showposts=1000');
  21.                         while ($archive_query->have_posts()) : $archive_query->the_post(); ?>
  22.                     <li><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></li>
  23.                     <?php endwhile; ?>
  24.                 </ul>
  25.                 <h4>Archivi mensili</h4>
  26.                 <ul>
  27.                     <?php wp_get_archives('type=monthly'); ?>
  28.                 </ul>
  29.                 <h4>Categorie</h4>
  30.                 <ul>
  31.                     <?php wp_list_categories('title_li=0'); ?>
  32.                 </ul>
  33.                 <h4>Feeds RSS/FeedBurner</h4>
  34.                 <ul>
  35.                     <li><a href="<?php bloginfo('rdf_url'); ?>" alt="RDF/RSS 1.0 feed"><acronym title="Resource Description Framework">RDF</acronym>/<acronym title="Really Simple Syndication">RSS</acronym> 1.0 feed</a></li>
  36.                     <li><a href="<?php bloginfo('rss_url'); ?>" alt="RSS 0.92 feed"><acronym title="Really Simple Syndication">RSS</acronym> 0.92 feed</a></li>
  37.                     <li><a href="<?php bloginfo('rss2_url'); ?>" alt="RSS 2.0 feed"><acronym title="Really Simple Syndication">RSS</acronym> 2.0 feed</a></li>
  38.                     <li><a href="<?php bloginfo('atom_url'); ?>" alt="Atom feed">Atom feed</a></li>
  39.                 </ul>
  40.             </div>
  41.         </div>
  42.     <?php endwhile; endif; ?>
  43.     </div>
  44.     <?php get_sidebar(); get_footer(); ?>

Post correlati