- 
	
	
	
		
درخواست تغییر در کد php
	
	
		با سلام خدمت اساتید محترم
من یک فایل php دارم که یک فیلد سفارشی به قسمت ویرایش منو اضافه میکنه . این فیلد به صورت text هست و میخوام به جای این فیلد یک منو باز شونده برای انتخاب آیکن قرار بدم.
	کد:
	
<?php
/**
 * Menu item custom fields example
 *
 * Copy this file into your wp-content/mu-plugins directory.
 *
 * @package Menu_Item_Custom_Fields_Example
 * @version 0.2.0
 * @author Dzikri Aziz <kvcrvt@gmail.com>
 *
 *
 * Plugin name: Menu Item Custom Fields Example
 * Plugin URI: https://github.com/kucrut/wp-menu-item-custom-fields
 * Description: Example usage of Menu Item Custom Fields in plugins/themes
 * Version: 0.2.0
 * Author: Dzikri Aziz
 * Author URI: http://kucrut.org/
 * License: GPL v2
 * Text Domain: menu-item-custom-fields-example
 */
/**
 * Sample menu item metadata
 *
 * This class demonstrate the usage of Menu Item Custom Fields in plugins/themes.
 *
 * @since 0.1.0
 */
class Menu_Item_Custom_Fields_Example {
        /**
         * Holds our custom fields
         *
         * @var    array
         * @access protected
         * @since  Menu_Item_Custom_Fields_Example 0.2.0
         */
        protected static $fields = array();
        /**
         * Initialize plugin
         */
        public static function init() {
                add_action( 'wp_nav_menu_item_custom_fields', array( __CLASS__, '_fields' ), 10, 4 );
                add_action( 'wp_update_nav_menu_item', array( __CLASS__, '_save' ), 10, 3 );
                add_filter( 'manage_nav-menus_columns', array( __CLASS__, '_columns' ), 99 );
                self::$fields = array(
                        'field-01' => __( 'Custom Field #1', 'menu-item-custom-fields-example' ),
                        'field-02' => __( 'Custom Field #2', 'menu-item-custom-fields-example' ),
                );
        }
        /**
         * Save custom field value
         *
         * @wp_hook action wp_update_nav_menu_item
         *
         * @param int   $menu_id         Nav menu ID
         * @param int   $menu_item_db_id Menu item ID
         * @param array $menu_item_args  Menu item data
         */
        public static function _save( $menu_id, $menu_item_db_id, $menu_item_args ) {
                if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
                        return;
                }
                check_admin_referer( 'update-nav_menu', 'update-nav-menu-nonce' );
                foreach ( self::$fields as $_key => $label ) {
                        $key = sprintf( 'menu-item-%s', $_key );
                        // Sanitize
                        if ( ! empty( $_POST[ $key ][ $menu_item_db_id ] ) ) {
                                // Do some checks here...
                                $value = $_POST[ $key ][ $menu_item_db_id ];
                        } else {
                                $value = null;
                        }
                        // Update
                        if ( ! is_null( $value ) ) {
                                update_post_meta( $menu_item_db_id, $key, $value );
                        } else {
                                delete_post_meta( $menu_item_db_id, $key );
                        }
                }
        }
        /**
         * Print field
         *
         * @param object $item  Menu item data object.
         * @param int    $depth  Depth of menu item. Used for padding.
         * @param array  $args  Menu item args.
         * @param int    $id    Nav menu ID.
         *
         * @return string Form fields
         */
        public static function _fields( $id, $item, $depth, $args ) {
                foreach ( self::$fields as $_key => $label ) :
                        $key   = sprintf( 'menu-item-%s', $_key );
                        $id    = sprintf( 'edit-%s-%s', $key, $item->ID );
                        $name  = sprintf( '%s[%s]', $key, $item->ID );
                        $value = get_post_meta( $item->ID, $key, true );
                        $class = sprintf( 'field-%s', $_key );
                        ?>
                                <p class="description description-wide <?php echo esc_attr( $class ) ?>">
                                        <?php printf(
                                                '<label for="%1$s">%2$s<br /><input type="text" id="%1$s" class="widefat %1$s" name="%3$s" value="%4$s" /></label>',
                                                esc_attr( $id ),
                                                esc_html( $label ),
                                                esc_attr( $name ),
                                                esc_attr( $value )
                                        ) ?>
                                </p>
                        <?php
                endforeach;
        }
        /**
         * Add our fields to the screen options toggle
         *
         * @param array $columns Menu item columns
         * @return array
         */
        public static function _columns( $columns ) {
                $columns = array_merge( $columns, self::$fields );
                return $columns;
        }
}
Menu_Item_Custom_Fields_Example::init();
 
در واقع میخوام آیکن پیکر زیر رو به جای فیلد text ( که در لاین 114 کد بالا قرار داره )  قرار بدم : 
https://farbelous.io/fontawesome-iconpicker/
ممنونم از شما