bloodthirsty 0 ارسال شده در شهریور 97 گزارش بازنشر ارسال شده در شهریور 97 (ویرایش شده) با سلام خدمت اساتید محترم من یک فایل 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/ ممنونم از شما ویرایش شده شهریور 97 توسط bloodthirsty نقل قول لینک به ارسال
Morteza 34190 ارسال شده در شهریور 97 گزارش بازنشر ارسال شده در شهریور 97 سلام بجای این خط؟ '<label for="%1$s">%2$s<br /><input type="text" id="%1$s" class="widefat %1$s" name="%3$s" value="%4$s" /></label>', نقل قول لینک به ارسال
bloodthirsty 0 ارسال شده در مهر 97 مالک گزارش بازنشر ارسال شده در مهر 97 در در 9/12/2018 at 22:52، Morteza گفته است : سلام بجای این خط؟ '<label for="%1$s">%2$s<br /><input type="text" id="%1$s" class="widefat %1$s" name="%3$s" value="%4$s" /></label>', بله...به جای همین کد میخوام یک منو باز شونده برای انتخاب آیکن قرار بدم که توی دیتابیس هم آیکن ذخیره بشه. نقل قول لینک به ارسال
Morteza 34190 ارسال شده در مهر 97 گزارش بازنشر ارسال شده در مهر 97 منو بازشونده رو باید با jQuery بنویسید که انتخابگر آیکون هم داشته باشه بقیه مواردش هم توی خود منو انجام میشه. برای اطلاعات بیشتر: https://premium.wpmudev.org/blog/add-icons-wordpress-menus/ نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .