programmare temi wordpress
Ogni tema ha un file function.php che aggiunge delle funzionalità al tema con supporto del motore di wordpress, l’assegnazione degli stili.
ulteriori informazioni https://developer.wordpress.org/themes/basics/theme-functions/
add_action
1 2 3 4 5 6 |
function nomeProgetto_theme_style() { wp_enqueue_script( 'font-css', 'https://fonts.googleapis.com/css?family=Open+Sans|Varela+Round' ); //aggiunge css da una fonte esterna wp_enqueue_style( 'main-css', get_stylesheet_uri(), 'fonts-css', get_the_time() ); //aggiunge css da un file interno al tema //get_the_time() viene usato per non dover svuotare di continuo la cache e va sostituita con la versione } add_action( 'wp_enqueue_scripts', 'nomeProgetto_theme_style' ); |
filter_action
1 2 3 4 5 6 7 8 9 10 |
function nomeProgetto_read_more_link( $excerpt ) { $extended_excerpt = $excerpt; $extended_excerpt .= ' <a class="more-link" href="' . get_permalink() . '">Read more »</a>'; return $extended_excerpt; } add_filter( 'get_the_excerpt', 'nomeProgetto_read_more_link', 10 ); |
Aggiungere suporti al tema
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
// Add Theme Support add_theme_support( 'title-tag' ); add_theme_support( 'post-thumbnails' ); add_theme_support( 'post_format', ['aside', 'gallery', 'link', 'image', 'quote', 'status', 'video', 'audio', 'chat'] ); add_theme_support( 'html5' ); add_theme_support( 'automatic-feed-links' ); add_theme_support( 'custom-background' ); add_theme_support( 'custom-header' ); add_theme_support( 'custom-logo' ); add_theme_support( 'customize-selective-refresh-widgets' ); add_theme_support( 'starter-content' ); // Setup Widget Areas function wphierarchy_widgets_init() { register_sidebar([ 'name' => esc_html__( 'Main Sidebar', 'mstc-theme' ), 'id' => 'main-sidebar', 'description' => esc_html__( 'Add widgets for main sidebar here', 'mstc-theme' ), 'before_widget' => '<section class="widget">', 'after_widget' => '</section>', 'before_title' => '<h1 class="widget-title">', 'after_title' => '</h1>', ]); } add_action( 'widgets_init', 'wphierarchy_widgets_init' ); |
Registrazione di un menu
La registrazione del menù consente di poterlo modificare nelle impostazioni del tema ( aspetto -> personalizza -> menù ) e scegliere la postizione ‘Main Menu’ o ‘Footer Menu’ (nell’esempio).
1 2 3 4 5 |
// Register Menu Locations register_nav_menus( [ 'main-menu' => esc_html__( 'Main Menu', 'mstc-theme' ), 'footer-menu' => esc_html__( 'Footer Menu', 'mstc-theme' ), ]); |
ed essere visualizzati in una parte del sito richiamando la funzione wp_nav_menu
1 2 |
$args =[ 'theme_location' => 'main-menu' ]; wp_nav_menu( $args ); |
Menù personalizzato e poi modificabile
Creare una funzione con i relativi menù
1 2 3 4 5 6 7 8 |
function custom_menu() { ?> <ul id="menu"> <li><a href="/">Home</a></li> <li><a href="/#">Set primary menu</a></li> </ul> <?php } |
richiamarla con:
1 2 3 4 5 6 |
$args = [ 'fallback_cb' => 'custom_menu', 'menu' => 'menu', 'menu_id' => 'menu', 'theme_location'=>'footer-menu' ]; wp_nav_menu( $args ); |