示例#1
0
 /**
  * Add icon to menu item title
  *
  * @since   0.1.0
  * @since   0.9.0   Renamed the method to `add_icon()`.
  * @wp_hook filter  the_title
  * @param   string  $title     Menu item title.
  * @param   int     $id        Menu item ID.
  *
  * @return string
  */
 public static function _add_icon($title, $id)
 {
     $meta = Menu_Icons_Meta::get($id);
     $icon = self::get_icon($meta);
     if (empty($icon)) {
         return $title;
     }
     $title_class = !empty($meta['hide_label']) ? self::$hidden_label_class : '';
     $title_wrapped = sprintf('<span%s>%s</span>', !empty($title_class) ? sprintf(' class="%s"', esc_attr($title_class)) : '', $title);
     if ('after' === $meta['position']) {
         $title_with_icon = "{$title_wrapped}{$icon}";
     } else {
         $title_with_icon = "{$icon}{$title_wrapped}";
     }
     /**
      * Allow plugins/themes to override menu item markup
      *
      * @since 0.8.0
      *
      * @param string  $title_with_icon Menu item markup after the icon is added.
      * @param integer $id              Menu item ID.
      * @param array   $meta            Menu item metadata values.
      * @param string  $title           Original menu item title.
      *
      * @return string
      */
     $title_with_icon = apply_filters('menu_icons_item_title', $title_with_icon, $id, $meta, $title);
     return $title_with_icon;
 }
示例#2
0
    /**
     * Print fields
     *
     * @since   0.1.0
     * @access  protected
     * @uses    add_action() Calls 'menu_icons_before_fields' hook
     * @uses    add_action() Calls 'menu_icons_after_fields' hook
     * @wp_hook action       menu_item_custom_fields
     *
     * @param object $item  Menu item data object.
     * @param int    $depth Nav menu depth.
     * @param array  $args  Menu item args.
     * @param int    $id    Nav menu ID.
     *
     * @return string Form fields
     */
    public static function _fields($id, $item, $depth, $args)
    {
        $input_id = sprintf('menu-icons-%d', $item->ID);
        $input_name = sprintf('menu-icons[%d]', $item->ID);
        $menu_settings = Menu_Icons_Settings::get_menu_settings(Menu_Icons_Settings::get_current_menu_id());
        $meta = Menu_Icons_Meta::get($item->ID, $menu_settings);
        $fields = self::_get_menu_item_fields($meta);
        ?>
			<div class="field-icon description-wide menu-icons-wrap" data-id="<?php 
        echo json_encode($item->ID);
        ?>
">
				<?php 
        /**
         * Allow plugins/themes to inject HTML before menu icons' fields
         *
         * @param object $item  Menu item data object.
         * @param int    $depth Nav menu depth.
         * @param array  $args  Menu item args.
         * @param int    $id    Nav menu ID.
         *
         */
        do_action('menu_icons_before_fields', $item, $depth, $args, $id);
        ?>
				<p class="description submitbox">
					<label><?php 
        esc_html_e('Icon:', 'menu-icons');
        ?>
</label>
					<?php 
        printf('<a class="_select">%s</a>', esc_html__('Select', 'menu-icons'));
        ?>
					<?php 
        printf('<a class="_remove submitdelete hidden">%s</a>', esc_html__('Remove', 'menu-icons'));
        ?>
				</p>
				<div class="_settings hidden">
					<?php 
        foreach ($fields as $field) {
            printf('<label>%1$s: <input type="text" name="%2$s" class="_mi-%3$s" value="%4$s" /></label><br />', esc_html($field['label']), esc_attr("{$input_name}[{$field['id']}]"), esc_attr($field['id']), esc_attr($field['value']));
        }
        // The fields below will not be saved. They're only used for the preview.
        printf('<input type="hidden" class="_mi-url" value="%s" />', esc_attr($meta['url']));
        ?>
				</div>
				<?php 
        /**
         * Allow plugins/themes to inject HTML after menu icons' fields
         *
         * @param object $item  Menu item data object.
         * @param int    $depth Nav menu depth.
         * @param array  $args  Menu item args.
         * @param int    $id    Nav menu ID.
         *
         */
        do_action('menu_icons_after_fields', $item, $depth, $args, $id);
        ?>
			</div>
		<?php 
    }