A continuación voy a ir anotando mis apuntes acerca del archivo functions.php de WordPress. Observa, por la extensión, que está escrito en PHP. Un archivo PHP puede tener HTML y PHP mezclado, y el modo de introducir HTML dentro de PHP es:
// lo que hay después de 2 barras es un comentario
<?php //indica que a continuación viene código PHP
xxxx
?> //indica que se ha acabado el código PHP y a continuación viene código HTML
Archivo functions.php
En el archivo functions.php se debe asignar un espacio de nombres a las funciones con el nombre de tu tema:
mitema_
Debe haber una función inicial que carga la configuración predeterminada y registros de WordPress:
function mitema_setup() {…}
Para registrar menús:
register_nav_menus( array(
'primary' => ( 'Primary Menu', 'myfirsttheme' ), 'secondary' => ( 'Secondary Menu', 'myfirsttheme' )
) );
Para insertar menús en mi tema:
wp_nav_menu()
Para traducción se ha de cargar el dominio de texto:
load_theme_textdomain( 'myfirsttheme', get_template_directory() . '/languages' );
Para diferentes formatos de publicación:
add_theme_support( 'post-formats', array( 'aside', 'gallery', 'quote', 'image', 'video' ) );
NOTA: La función add_theme_support se lee como «añade_soporte_al_tema (‘este-soporte’)» y para ver la sintaxis ir al Codex de WordPress.
En los temas de bloque, los siguientes se habilitan automaticamente:
add_theme_support( 'post-thumbnails' );
add_theme_support( 'responsive-embeds' );
add_theme_support( 'editor-styles' );
add_theme_support( 'html5', array( 'style','script' ) );
add_theme_support( 'automatic-feed-links' );
Después de la declaración de la función va la instrucción add_action() para que se cargue la función.
El ancho del contenido se establece con:
if ( ! isset ( $content_width) ) {
$content_width = 800;
}
Pero los temas con themes.json no la necesitan porque está en la configuración de diseño en themes.json.