62 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /**
 | |
|  * Menu Item Custom Fields
 | |
|  *
 | |
|  * @package Menu_Item_Custom_Fields
 | |
|  * @version 1.0.0
 | |
|  * @author  Dzikri Aziz <kvcrvt@gmail.com>
 | |
|  *
 | |
|  * Plugin name: Menu Item Custom Fields
 | |
|  * Plugin URI: https://github.com/kucrut/wp-menu-item-custom-fields
 | |
|  * Description: Easily add custom fields to nav menu items.
 | |
|  * Version: 1.0.0
 | |
|  * Author: Dzikri Aziz
 | |
|  * Author URI: https://kucrut.org/
 | |
|  * License: GPLv2
 | |
|  * Text Domain: menu-item-custom-fields
 | |
|  */
 | |
| 
 | |
| if ( ! class_exists( 'Menu_Item_Custom_Fields' ) && ( function_exists('get_bloginfo') && ! version_compare( get_bloginfo( 'version' ), '5.4', '>=' ) ) ) :
 | |
| 	/**
 | |
| 	* Menu Item Custom Fields Loader
 | |
| 	*/
 | |
| 	class Menu_Item_Custom_Fields {
 | |
| 
 | |
| 		/**
 | |
| 		* Add filter
 | |
| 		*
 | |
| 		* @wp_hook action wp_loaded
 | |
| 		*/
 | |
| 		public static function load() {
 | |
| 			add_filter( 'wp_edit_nav_menu_walker', array( __CLASS__, '_filter_walker' ), 99 );
 | |
| 		}
 | |
| 
 | |
| 
 | |
| 		/**
 | |
| 		* Replace default menu editor walker with ours
 | |
| 		*
 | |
| 		* We don't actually replace the default walker. We're still using it and
 | |
| 		* only injecting some HTMLs.
 | |
| 		*
 | |
| 		* @since   0.1.0
 | |
| 		* @access  private
 | |
| 		* @wp_hook filter wp_edit_nav_menu_walker
 | |
| 		* @param   string $walker Walker class name
 | |
| 		* @return  string Walker class name
 | |
| 		*/
 | |
| 		public static function _filter_walker( $walker ) {
 | |
| 			$walker = 'Menu_Item_Custom_Fields_Walker';
 | |
| 			if ( ! class_exists( $walker ) ) {
 | |
| 				require_once dirname( __FILE__ ) . '/walker-nav-menu-edit.php';
 | |
| 			}
 | |
| 
 | |
| 			return $walker;
 | |
| 		}
 | |
| 	}
 | |
| 	add_action( 'wp_loaded', array( 'Menu_Item_Custom_Fields', 'load' ), 9 );
 | |
| endif; // class_exists( 'Menu_Item_Custom_Fields' )
 | |
| 
 | |
| // Uncomment the following line to test this plugin
 | |
| #require_once dirname( __FILE__ ) . '/doc/menu-item-custom-fields-example.php';
 |