Cartella dei template personalizzati
Ho creato una cartella personalizzata ("/templates") e ho inserito tutti i miei file template al suo interno, invece che nella root ("/wp-content/themes/my-theme/"). Funziona correttamente.
Devo aggiungere qualche funzione per indicare "/templates/" come cartella dei miei template? Di solito si mettono nella root, giusto?
Al momento funziona tutto bene ma mi chiedo se ci sia qualcosa che devo fare. Non riesco a trovare informazioni nel codex di WordPress. Ho appena installato WPML e tutte le pagine dei template danno errore 404. Mi chiedo se questo (la posizione personalizzata della cartella dei template) causi questi errori 404, dato che le pagine WooCommerce funzionano correttamente. WC non è nella mia cartella dei template, è stato generato dal plugin.
-------- Aggiuntivo
Ho creato un template www/wp-content/themes/my-theme/tpl-home.php
Ho nominato questo file come template di pagina.
<?php
/*
Template Name: Home
*/
get_header(); ?>
E ho spostato i file dei template in www/wp-content/themes/my-theme/templates/tpl-home.php
Continua a funzionare bene. Ho visto molti temi che lo fanno in questo modo.
Ho bisogno di configurare qualche funzione per indicare la cartella?

A partire da WordPress 3.4 puoi inserire i tuoi template di pagina in qualsiasi sottodirectory diretta ti serva, non sembra sia possibile inserirli in sottosottodirectory ma non ho testato questa possibilità.
Suggerisco di memorizzare i template nella cartella /page-templates/
poiché WordPress sembra riconoscerla. Dal documento sui Page Template di WordPress:
WordPress riconosce la sottocartella
page-templates
. Pertanto, è una buona idea archiviare i tuoi template di pagina globali in questa cartella per mantenerli organizzati.

Puoi posizionare i tuoi template all'interno del tuo tema attivo dove preferisci, ma devi includere i tuoi file in functions.php.
Puoi creare una cartella chiamata page-templates
all'interno del tuo tema corrente.
/wp-content/themes/my-theme/page-templates
e aggiungere i tuoi template personalizzati lì.
Includi i file in functions.php
if ( is_page_template( 'page-templates/my-template.php' ) ) {
include_once 'page-templates/my-template.php';
}
Dovrebbe funzionare.
