Atributos personales agregados de los menús de WordPress

Hay tantos tutoriales en la web para explicar "cómo personalizar una campaña personalizada con las palabras de la prensa", pero el alcalde del país trata el uso del campo css predeterminado del campo descripción predeterminado. No necesitamos ofrecer un método real y un nuevo campamento real para los menús Entonces, creamos un complemento simple que agrega un campo de "subtítulo" para cualquier menú de WordPress.

Aquí está el resultado final en la administración de WordPress:

📑 Aquí podrás encontrar 👇

Paso 1: La creación de complementariedad

Vamos, vamos a una de mis publicaciones anteriores, crea un complemento a la completa. Solo necesita crear una nueva alfombra en wp-content / plugins y escribir "dulce-personalizado-menú", y crear dentro del archivo "menú-personalizado.php". Este libro está archivado y se agregó este código:


Este código es todo lo que necesitamos para definir un nuevo complemento.  Ahora vamos a crear una clase PHP personalizada que contiene un constructor y las funciones que necesitaremos para que el complemento funcione bien.

A continuación se explica cómo crear la clase:

class rc_sweet_custom_menu {

	/*--------------------------------------------*
	 * Constructor
	 *--------------------------------------------*/

	/**
	 * Initializes the plugin by setting localization, filters, and administration functions.
	 */
	function __construct() {

	} // end constructor

	/* All functions will be placed here */

}

// instantiate plugin's class
$GLOBALS['sweet_custom_menu'] = new rc_sweet_custom_menu();

La última línea es una instancia de clase y agrega todas las clases en una variable global.

Tabla 2: agrega el filtro de campamentos personalizados

Ahora que tenemos nuestra clase, creamos funciones personalizadas. La primera función a agregar es dar de alta la campaña personalizada "Subíndice" que incluimos como atributo del menú avanzado. Para hacer, aquí está la función para crear, la columna está codificada en el lugar de /*Todas las canciones que no están aquí/:

/**
 * Add custom fields to $item nav object
 * in order to be used in custom Walker
 *
 * @access      public
 * @since       1.0 
 * @return      void
*/
function rc_scm_add_custom_nav_fields( $menu_item ) {

    $menu_item->subtitle = get_post_meta( $menu_item->ID, '_menu_item_subtitle', true );
    return $menu_item;

}

Luego, definitivamente necesitas descifrar el WordPress que tienes en la cuenta de nuestra función, así como el código del código dado en la función __construct():

// add custom menu fields to menu
add_filter( 'wp_setup_nav_menu_item', array( $this, 'rc_scm_add_custom_nav_fields' ) );

Paso 3: vigilar campamentos personalizados

Incluir en el campo personalizado "subtítulo" que realmente existimos, podemos crear una función que será válida en la edición del menú. Los elementos del menú están en los dos tipos de publicaciones personalizadas, por lo que podemos usar la API del tipo de publicaciones personalizadas y el método post_meta. Entonces, para guardar el valor del campo de menú personalizado, agregue esta funci_field:

/**
 * Save menu custom fields
 *
 * @access      public
 * @since       1.0 
 * @return      void
*/
function rc_scm_update_custom_nav_fields( $menu_id, $menu_item_db_id, $args ) {

    // Check if element is properly sent
    if ( is_array( $_REQUEST['menu-item-subtitle']) ) {
        $subtitle_value = $_REQUEST['menu-item-subtitle'][$menu_item_db_id];
        update_post_meta( $menu_item_db_id, '_menu_item_subtitle', $subtitle_value );
    }

}

En esta función, estamos verificando que el valor de la campaña personalizada se basa en la forma en que creamos el punto de creación y la cantidad simple de valor que valoramos. Ahora tenemos que agregar la función agregar la función à ¢ à ½:

// save menu custom fields
add_action( 'wp_update_nav_menu_item', array( $this, 'rc_scm_update_custom_nav_fields'), 10, 3 );

Pasaporte 4: el formulario

Si conoces este tutorial paso a paso, tienes que agregar que no creamos el formulario que debe contener nuestro campo de subtítulos. Esta parte es un poco más completa que las otras. Esto es lo que queremos liderar con Walker. Realmente te lleva a enseñar el código sobre la clase de caminata, realmente te ayuda a entender lo que quieres y a hacer lo que quieres. Por cierto, hay muchos tutoriales excelentes en Internet para brindarte más detalles sobre esta clase, ¡así © éà © chales un vistazo! En la parte del tiempo del alcalde, los caminantes se utilizan para modificar el tamaño HTML de un menú. Aquí, estamos trabajando en la forma del menú de estado sólido de la agresión HTML. :

/**
 * Define new Walker edit
 *
 * @access      public
 * @since       1.0 
 * @return      void
*/
function rc_scm_edit_walker($walker,$menu_id) {

    return 'Walker_Nav_Menu_Edit_Custom';

}

y luego esto al constructor:

// edit menu walker
add_filter( 'wp_edit_nav_menu_walker', array( $this, 'rc_scm_edit_walker'), 10, 2 );

Eso deja claro el formulario por defecto del administrador administrador por uno personalizado. Ahora que el filtro está agregado, las copias son de las líneas en la parte inferior del archivo desacoplado.php la parte inferior del archivo decus.

include_once( 'edit_custom_walker.php' );
include_once( 'custom_walker.php' );

Este es el punto para incluir el archivo. El ejemplo es "edit_custom_walker.php" y ha sido modificado. la forma predefinida para editar el menú. Este es un archivo donde podemos agregar el campo de subtítulos.

El segundo se utiliza en la interfaz del sitio web, es el archivo que modificará el equilibrio del menú para sus visitantes.

Como "edit_custom_walker.php" es un poco largo, pero no puedo evitarlo. Puedes ver el código completo aquí. Él sabe cómo agregar desde el agua aquí. el código agregado:

Si desea agregar más campos al menú, simplemente duplique estas líneas y cópielas y péguelas.  Una vez realizado este paso, el menú debería estar funcionando en la administración.  Ahora debería poder ver el nuevo campo "subtítulo" al agregar un nuevo elemento a un menú.  Si no es el caso, haz que sigas el tutorial paso a paso.  Ahora es el momento de mostrar el valor de los subtítulos en la interfaz.


Paso 5: Salida de campo personalizado

Si todo funciona bien en la administración, probablemente ahora desee mostrar los subtítulos en la interfaz. Abra custom_walker.php y agregue este código:
classes ) ? array() : (array) $item->classes;

           $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) );
           $class_names=" class="". esc_attr( $class_names ) . '"';

           $output .= $indent . '

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir