WorddPress 3 ha estado disponible durante mucho tiempo, pero todavía hay TONELADAS de personas que no tienen idea de cómo usar el nuevo administrador del menú personalizado de WordPress. Por esta razón, como desarrollador de temas, es importante mostrar un respaldo para su menú para que sus compradores/usuarios de temas no piensen que algo está mal con su tema. A continuación, le mostraré lo que creo que es la solución ideal, creando un respaldo personalizado con un enlace a «wp-admin/nav-menus.php» para que cuando el usuario instale el tema, pueda hacer clic en el enlace y configurar su menú de inmediato.
Paso 1: crear la función de respaldo
Lo primero que vamos a hacer es agregar una nueva función a su archivo functions.php (o cualquier archivo que use para registrar sus áreas de menú personalizadas). Agregue el siguiente código, preferiblemente justo después de la función register_nav_menu para una mejor usabilidad. Esta función tomará el nuevo archivo que creará en el paso 2 con el código para su menú predeterminado/de respaldo.
// Menu Fallback
function wpex_default_menu() {
get_template_part( 'template-parts/default-menu.php' );
}
Paso 2: configure su menú predeterminado/de respaldo
Ahora necesita crear el archivo que la función agregada previamente capturará y mostrará cuando un menú no esté definido en el administrador de WP para su área de menú.
una. Cree una nueva carpeta llamada «template-parts» en su carpeta de temas si aún no existe
B. Crea un nuevo archivo llamado default-menu.php
3. Inserte su código para su menú alternativo en este archivo (asegúrese de que coincida con el código utilizado en su sitio para que se vea bien). A continuación se muestra un ejemplo básico:
<ul>
<li><a href="<?php echo admin_url('nav-menus.php'); ?>"><?php esc_html_e( 'Set Up Your Menu', 'text_domain' ); ?></a></li>
</ul>
Paso 3: Llame a su función Fallback en su menú
Ahora querrá volver a su “wp_nav_menu” y agregue su respaldo como parte de la matriz y llame a la función que creó en el paso uno, como el ejemplo a continuación:
<?php
//define main navigation
wp_nav_menu( array(
'theme_location' => 'main',
'fallback_cb' => 'wpex_default_menu',
) ); ?>