Folder personalizat pentru șabloane
Am creat un folder personalizat ("/templates") și am pus toate fișierele mele șablon în acel folder, în loc de rădăcină ("/wp-content/themes/my-theme/"). Funcționează bine.
Trebuie să adaug vreo funcție pentru a indica folderul "/templates/" ca folder pentru șabloanele mele? De obicei le pui în rădăcină, nu-i așa?
Funcționează bine acum, dar mă întreb dacă mai este ceva de făcut. Nu pot găsi nicio informație în documentația WordPress. Tocmai am instalat WPML și toate paginile cu șabloane returnează eroare 404 acum. Mă întreb dacă această locație personalizată a folderului de șabloane cauzează aceste pagini 404. Pentru că paginile WooCommerce se afișează bine. WC nu este în folderul meu de șabloane, fiind generat de plugin.
-------- Suplimentar
Am creat un șablon www/wp-content/themes/my-theme/tpl-home.php
Am numit acest fișier ca pagină șablon.
<?php
/*
Template Name: Home
*/
get_header(); ?>
Și am mutat fișierele șablon în www/wp-content/themes/my-theme/templates/tpl-home.php
Încă funcționează bine. Am văzut multe teme care fac acest lucru.
Trebuie să configurez vreo funcție pentru a indica folderul?

Începând cu WordPress 3.4, puteți plasa șabloanele de pagini în orice subdirector direct aveți nevoie, se pare că nu le puteți plasa în sub-subdirectoare, dar nu am testat acest lucru.
Vă sugerez să stocați șabloanele în folderul /page-templates/
, deoarece WordPress pare să-l recunoască. Conform Intrării pentru Șabloanele de Pagini WordPress:
WordPress recunoaște subfolderul
page-templates
. Prin urmare, este o idee bună să vă stocați șabloanele globale de pagini în acest folder pentru a le menține organizate.

Puteți plasa șabloanele în tema activă oriunde doriți, dar trebuie să includeți fișierele în functions.php.
Puteți crea un folder numit page-templates
în tema curentă.
/wp-content/themes/my-theme/page-templates
și să adăugați șabloanele personalizate acolo.
Includeți fișierele în functions.php
if ( is_page_template( 'page-templates/my-template.php' ) ) {
include_once 'page-templates/my-template.php';
}
ar trebui să funcționeze.
