Què cal per fer un web WordPress?
Per fer un web amb WordPress, moltes vegades en tindrem prou amb les funcionalitats que ens ofereix el propi tema amb l’ajuda d’alguna extensió. Però també es pot donar el cas que necessitem funcionalitats específiques que no trobem en aquests elements.
Aleshores, si tenim coneixements de PHP, és quan ens plantegem desenvolupar nosaltres mateixos les funcionalitats que ens manquen. Però arriben els dubtes… On hem de posar les funcions que desenvolupem? en quin moment s’executaran? Podem sobreescriure els fitxers del tema?
Les funcions del tema
Els temes de WordPress disposen d’un arxiu anomenat functions.php per posar-hi funcions. Aquest arxiu es troba a la carpeta wp-content/themes/elmeutema/
.
Es tracta d’un fitxer on hi ha les funcions pròpies del tema per tal de personalitzar-ne les característiques i ampliar-ne la funcionalitat, fent ús dels ganxos (hooks) de WordPress (que explicarem en un altre article).
A més, l’arxiu functions.php també s’utilitza per:
- Posar-hi funcions que puguin ser utilitzades des de la resta d’arxius de plantilla (template files). És a dir, des dels diferents fitxers que composen el tema (veieu com renderitza el wordpress).
- Activar característiques de WordPress amb add_theme_support(). P.ex: activar les miniatures (thumbnails) de les entrades, formats de les entrades, posar un logo personalitzat, etc.
És una bona pràctica posar el prefix nomdeltema_ a les funcions que hi ha definides dins de functions.php.
Exemple de functions.php
A continuació mostrem un fragment del que podria ser un exemple real d’arxiu functions.php:
<?php
function elmeutema_enqueue_styles() {
$parent_style = 'parent-style';
wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css', array( 'appointment-default' ) );
}
add_action( 'wp_enqueue_scripts', 'elmeutema_enqueue_styles' );
// Eliminar meta generator amb la versió de WordPress
remove_action('wp_head', 'wp_generator');
//....
Només comentar que, en aquest cas, es tractaria d’un functions.php col·locat en un tema fill del tema appointment.
Amb la funció elmeutema_enqueue_styles() enganxada (hooked) a l’acció wp_enqueue_scripts assegurem carregar també els estils del pare.
Amb la línia del remove_action() evitarem que es renderitzi el tag meta amb la versió de WordPress a les pàgines del nostre web.
Es pot modificar el functions.php del tema directament?
La resposta és no. Malgrat que es podria fer i funcionaria, existeix el risc de que en la propera actualització del tema es perdin els canvis. És a dir, perdríem totes les funcions que haguéssim afegit.
Per evitar això, les modificacions que fem sobre qualsevol tema WordPress s’han de fer per mitjà de temes fills (child themes). Explicarem com crear temes fills en propers articles.
Extensions o functions.php?
Com a alternativa a utilitzar el fitxer de funcions del tema, functions.php, també es pot personalitzar el web creant les nostres pròpies extensions (plugins). De fet, aquest és el mètode recomanat.
Aquests dos mètodes tenen algunes diferències. Les dues principals són:
- L’arxiu functions.php és propi de cada tema. És a dir, en el moment en que el tema actiu sigui un altre, no es carregaran aquestes funcions. Per contra, les extensions (plugins) són independents del tema. Si l’extensió on les definim està activada, les funcions estaran disponibles.
- Una extensió sol tenir un objectiu concret (p.ex. oferir un giny per mostrar les últimes piulades al teu compte de twitter) mentre que el functions.php sol tenir diversos blocs de codi amb diferents finalitats.
Comentar que l’arxiu functions.php es carrega després que s’hagin carregat totes les extensions. Si la modificació a realitzar té alguna dependència que pugui veure’s afectada per l’ordre de càrrega, caldrà tenir-ho en compte.
Desitgem que aquest article t’hagi estat d’utilitat. Si és així, t’animem a compartir-lo a les xarxes socials. Moltes gràcies!