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.