APPUNTI

Inserire templare nell’elenco dei modelli da codice

Una funzione veloce in PHP da inserire da un plugin, nell’elenco dei modelli un nuovo template


# Per caricare un templare nell'elenco dei modelli 
function page_templates( $templates , $theme, $post ) {
    $templates[ dirname(  __FILE__  ) . '/templates/miofile.php' ] = 'Mio nuovo Template';
    return $templates;
}
add_filter( 'theme_page_templates', 'page_templates', 10, 3 );

//Se nel post è impostato con il nuovo templare lo carico
add_filter( 'template_include', 'pluginname_load_template', 99 );
function pluginname_load_template( $template ) {

    global $post;
    $custom_template_slug   = dirname(  __FILE__  ) . '/templates/pwa.php';
    $page_template_slug     = get_page_template_slug( $post->ID );

    if( $page_template_slug == $custom_template_slug ){
        return dirname(  __FILE__  ) . '/templates/miofile.php';
    }

    return $template;

}

Se invece vogliamo che in automatico sia applicato anche a una determinata pagina, basta modificare la condizione del IF cosi:

if( $page_template_slug == $custom_template_slug || $post->post_name == 'slug_pagina' ){