12 Aggiungere funzionalità (function.php)

Questo è un emporio degli attrezzi per uno sviluppatore wordpress.

Quello che segue è un minimale function.php per il nostro tema:

<?php
// Imposta la larghezza del contenuto per il tema
if ( ! isset( $content_width ) ) {
   $content_width = 500;
}
// Imposta il tema
add_action( 'after_setup_theme', 'simpleblog_themesetup' );
function simpleblog_themesetup() {
   // Link automatici dei feed
   add_theme_support( 'automatic-feed-links' );
// Aggiunge la funzione di navigazione nei menu all'hook "init"
   add_action( 'init', 'simpleblog_register_menus' );
// Aggiunge la funzione della sidebar all'hook "widgets_init"
   add_action( 'widgets_init', 'simpleblog_register_sidebars' );
// Carica file JavaScript sull'hook "wp_enqueque scripts"
   add_action( 'wp_enqueue_scripts', 'simpleblog_load_scripts' );
}

// Menu di registro
function simpleblog_register_menus() {
   register_nav_menus(
      array(
         'top-navigation'    => 'Top navigation',
         'bottom-navigation' => 'Bottom navigation'
      ) );
}

// Registra le aree dei widget
function simpleblog_register_sidebars() {
   // Area dei widget nella colonna di destra
   register_sidebar(
      array(
         'name'          => 'Right column',
         'id'            => 'right-column',
         'before_widget' => '<li id="%1$s" class="widget-container %2$s">',
         'after_widget'  => '</li>',
         'before_title'  => '<h3 class="widget-title">',
         'after_title'   => '</h3>',
      ) );
}

// Carica JavaScripts
function simpleblog_load_scripts() {
   // Carica JavaScript per i thread dei commenti se abilitati
   if ( is_singular() && get_option( 'thread_comments' ) && comments_open() ) {
      wp_enqueue_script( 'comment-reply' );
   }
 }
?>

$content_width dice a WordPress qual è la larghezza di base in pixel del contenuto, qui 500 pixel. Questa sarà la dimensione utilizzata da oEmbed quando si incorporano elementi multimediali (video Youtube, tweet…)

A seguire troviamo la funzione di setup del tema. Si collega all’hook after_setup_theme, il che significa che verranno utilizzate tutte le funzioni che includete in simpleblog_themesetup(). Sono le funzioni più sotto, con simpleblog_register_menus() per creare due menu usando register_nav_menus(), simpleblog_register_sidebars() per creare l’area dei widget nella colonna di destra e infine simpleblog_load_scripts() per caricare l’eventuale codice JavaScript necessario. A tutte queste funzioni si fa riferimento nella funzione simpleblog_theme_setup(), associata ad after_setup_theme.