18. Configurare logo e nome brand dinamico – Area Aspetto > Personalizza

functions.php
function manoz_customize_register($wp_customize){
//CONFIGURAZIONE CARICAMENTO LOGO
$wp_customize->add_section(‘brand’, array(
‘title’ => __(‘Logo&Brand’, ‘custom_brand_section’),
‘priority’ => 30,
));
$wp_customize->add_setting(‘settaggio_brand’, array(
‘default’ => ”,
‘transport’=> ‘refresh’,
));
$wp_customize->add_control(newWP_Image_Control(
$wp_customize,
‘custom_brand_label’, array(
‘label’ => __(‘carica il tuo logo’, ‘custom_brand_control’),
‘section’ => ‘brand’,
‘settings’ => ‘settaggio_brand’,
)
));
//CONFIGURARE NOME BRAND
$wp_customize->add_setting(‘settaggio_nome_brand‘, array(
‘default’ => ‘MANOZ’,
‘transport’=> ‘refresh’,
));
$wp_customize->add_control(newWP_Customize_Control(
$wp_customize,
‘custom_brand_label’, array(
‘label’ => __(‘Scrivi il nome del sito’, ‘custom_nome_brand_control’),
‘section’ => ‘brand’,
‘settings’ => ‘settaggio_nome_brand‘,
‘type’=> ‘text’,
)
));
}
add_action(‘customize_register’,’manoz_customize_register’);
poi nella parte header.php richiamiamo il tutto con la funzione:
<?php echo get_theme_mod(‘settaggio_brand’)?> //dove tra parentesi ovviamente andrà l’ID da noi scelto precedentemente

17. Creare sezione dinamica – Nuova area Aspetto >Personalizza

Andiamo su functions.php

// registrazone customizzare logo e brand da areea perosnalizza
//Registrazione nuove sezioni API CUSTOMIZER nuova area personalizza nel customizzatore -aspetto personalizza
function manoz_customize_register($wp_customize){ //con questa funzione utilizziamo un oggetto. wp_customize è un oggetto
//CONFIGURARE MODIFICA TITOLO SEZIONE SERVIZI
// a questo oggetto assegnamo dei metodi predefiniti che ci permetteranno in prima istanza di creare una nuova sezione e poi settare e controllare
$wp_customize->add_section(‘servizi’, array( //add section è un metodo. stiamo dando una funzione all’oggetto
‘title’ => __(‘Servizi’, ‘custom_servizi_section’), //prima il nome che compare poi una etichetta
‘priority’ => 100, //stabilisce a che altezza del menu posizioniamo. Lo facciamo con un valore numerico 100 per es al centro.
));
$wp_customize->add_setting(‘settaggio_titolo_servizi’, array( //il primo parametro è l’ID identificativo
‘default’ => ‘I nostri servizi’, //un parametro di default
‘transport’=> ‘refresh’, // permette in tempo reale vedere i cambiamenti che faccio in anteprima
));
$wp_customize->add_control(newWP_Customize_Control( //creaimo nuovo oggetto a partire dalla classe wp customize control
$wp_customize,
‘custom_servizi_titolo_label’, array(
‘label’ => __(‘Titolo Sezione’, ‘custom_servizi_titolo_control’),
‘section’ => ‘servizi’, //parametro che indica a quale sezione appartiene il nome dovrà essere uguale quindi a quello messo tra parentesi add_section
‘settings’ => ‘settaggio_titolo_servizi’, //parametro che deve riprednere add_setting
‘type’=> ‘text’,
)
));
//CONFIGURARE MODIFICA TESTO DELLA SEZIONE SERVIZI
$wp_customize->add_setting(‘settaggio_testo_servizi’, array(
‘default’ => ‘Inserisci un testo qualsiasi’,
‘transport’=> ‘refresh’,
));
$wp_customize->add_control(newWP_Customize_Control(
$wp_customize,
‘custom_servizi_testo_label’, array( //il parametro è l’ID che poi andiamo a richiamare nella pagina html dove voglio che compaia
‘label’ => __(‘Testo’, ‘custom_testo_servizi_control’),
‘section’ => ‘servizi’,
‘settings’ => ‘settaggio_testo_servizi’,
‘type’=> ‘textarea’,
)
));
//CONFIGURARE CAMPO LINK
$wp_customize->add_setting(‘settaggio_link_servizi’, array(
‘default’ => ‘https://’,
‘transport’=> ‘refresh’,
));
$wp_customize->add_control(newWP_Customize_Control(
$wp_customize,
‘custom_servizi_link_label’, array( //il parametro è l’ID che poi andiamo a richiamare nella pagina html dove voglio che compaia
‘label’ => __(‘Link Bottone’, ‘custom_link_servizi_control’),
‘section’ => ‘servizi’,
‘settings’ => ‘settaggio_link_servizi’,
‘type’=> ‘text’,
)
));
//CONFIGURARE TESTO BOTTONE
$wp_customize->add_setting(‘settaggio_btn_servizi’, array(
‘default’ => ‘Testo Bottone’,
‘transport’=> ‘refresh’,
));
$wp_customize->add_control(newWP_Customize_Control(
$wp_customize,
‘custom_servizi_btn_label’, array( //il parametro è l’ID che poi andiamo a richiamare nella pagina html dove voglio che compaia
‘label’ => __(‘Link Bottone’, ‘custom_btn_servizi_control’),
‘section’ => ‘servizi’,
‘settings’ => ‘settaggio_btn_servizi’,
‘type’=> ‘text’,
)
));
}
add_action(‘customize_register’,’manoz_customize_register’);
Poi su front-page.php nella sezione html dove vogliamo che compaia tutto il campo di personalizzazione dinamico, scriviamo questa funzione:
<?php echo get_theme_mod(‘settaggio_titolo_servizi’)?>
dove tra parentesi ovviamente ci sarà l’ID identificativo che abbiamo scelto e
via facendo utilizzeremo la stessa funziona con ID diverso corrispondente a ogni campo che andremo a creare

16. Custom Queries

A cosa servono le custom queries?

Servono a creare richieste di contenuto specifico da far visualizzare in qualsiasi parte del sito.

Qualche esempio concreto:

Es. chiamare delle pagine, o parent page, children , una o più categorie, tags, solo un articolo o una serie di articoli, articoli con un certo numero di commenti, contenuto dei campi personalizzati (custom post types) che abbiamo creato. etc.

 

 

creo variabile che include un oggetto.

creo questo oggetto a partire da una classe new WP_Query(array)

https://codex.wordpress.org/it:Riferimento_classi/WP_Query

 

$

 

 

 

15. Post Types

functions.php creiamo una funzione personalizzata. Le variabili all’interno saranno sicuramente labels per inserire in questa variabile tutte le etichette visibili, e poi la variabile args che è anch’essa uno standard per worpdress.
//Registrazione di un contenuto personalizzato – base
function manoz_custom_servizi()
{
    $labels = array(
        ‘name’ => ‘Servizi’, /* nome, al plurale, dell’etichetta del post type. */
        ‘singular_name’ => ‘Servizi’, /* nome, al singolare, dell’etichetta del post type. */
        ‘menu_name’ => ‘Miei servizi’,
        ‘add_new’ => ‘Aggiungi nuovo’,
        ‘all_items’ => ‘Tutti i servizi’, /* testo nel menu che indica tutti i contenuti del post type */
        ‘add_new_item’ => ‘Nuovo’,
        ‘edit_item’ => ‘Modifica’,
        ‘new_item’ => ‘Nuovo servizio’,
        ‘view_item’ => ‘Visualizza’,
        ‘search_item’ => ‘Ricerca’,
        ‘not_found’ =>  ‘Nessun servizio trovato’, /* testo se non trova nulla */
        ‘not_found_in_trash’ => ‘Nessun servizio trovato nel cestino’, /* testo se non trova nulla nel cestino */
    );
    $args = array(
        ‘labels’ => $labels,
        ‘public’ => true, /* definisce se il post type sia visibile sia da front-end che da back-end */
        ‘show_ui’ => true, /* definisce se deve essere visualizzata l’interfaccia di default nel pannello di amministrazione */
        ‘show_in_menu’ => true,
        ‘show_in_nav_menus’     => true,
        ‘has_archive’ => true,
        ‘publicly_queryable’ => true,
        ‘query_var’ => true,
        ‘rewrite’ => array(‘slug’ => ‘servizi’), /* specificare uno slug per leURL */
        ‘capability_type’ => ‘post’, /* definisci se si comporterà come un post o come una pagina */
        ‘hierarchical’ => true, /* definisci se potranno essere definiti elementi padri di altri */
        ‘supports’ => array(
            ‘title’,
            ‘editor’,
            ‘excerpt’,
            ‘comments’,
            ‘custom-fields’,
            ‘thumbnail’,
            ‘page-attributes’
        ),   /* definisce quali elementi verranno visualizzati nella schermata di creazione del post */
        ‘taxonomies’ => array(‘category’, ‘post_tag’),
        ‘menu_position’ => 5, /* definisce l’ordine in cui comparire nel menù di amministrazione a sinistra */
        ‘menu_icon’ => ‘dashicons-products’,
        ‘exclude_from_search’ => false
    );
    register_post_type(‘servizi’, $args);
}
add_action(‘init’, ‘manoz_custom_servizi’);
far riconoscere a wp il percorso del custom post type creato e farlo diventare parte della struttura del tema wp.
duplico pagina single.php e la chiamo single-nomedelcustompostcreato.php nel mio caso single-servizi.php

perchè dalla pagina single? perchè

‘capability_type’ => ‘post’,
se avessi messo page avrei usato page.php come base.