[ Index ] |
PHP Cross Reference of WordPress |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Customize API: WP_Customize_Nav_Menu_Item_Control class 4 * 5 * @package WordPress 6 * @subpackage Customize 7 * @since 4.4.0 8 */ 9 10 /** 11 * Customize control to represent the name field for a given menu. 12 * 13 * @since 4.3.0 14 * 15 * @see WP_Customize_Control 16 */ 17 class WP_Customize_Nav_Menu_Item_Control extends WP_Customize_Control { 18 19 /** 20 * Control type. 21 * 22 * @since 4.3.0 23 * @var string 24 */ 25 public $type = 'nav_menu_item'; 26 27 /** 28 * The nav menu item setting. 29 * 30 * @since 4.3.0 31 * @var WP_Customize_Nav_Menu_Item_Setting 32 */ 33 public $setting; 34 35 /** 36 * Constructor. 37 * 38 * @since 4.3.0 39 * 40 * @see WP_Customize_Control::__construct() 41 * 42 * @param WP_Customize_Manager $manager Customizer bootstrap instance. 43 * @param string $id The control ID. 44 * @param array $args Optional. Arguments to override class property defaults. 45 * See WP_Customize_Control::__construct() for information 46 * on accepted arguments. Default empty array. 47 */ 48 public function __construct( $manager, $id, $args = array() ) { 49 parent::__construct( $manager, $id, $args ); 50 } 51 52 /** 53 * Don't render the control's content - it's rendered with a JS template. 54 * 55 * @since 4.3.0 56 */ 57 public function render_content() {} 58 59 /** 60 * JS/Underscore template for the control UI. 61 * 62 * @since 4.3.0 63 */ 64 public function content_template() { 65 ?> 66 <div class="menu-item-bar"> 67 <div class="menu-item-handle"> 68 <span class="item-type" aria-hidden="true">{{ data.item_type_label }}</span> 69 <span class="item-title" aria-hidden="true"> 70 <span class="spinner"></span> 71 <span class="menu-item-title<# if ( ! data.title && ! data.original_title ) { #> no-title<# } #>">{{ data.title || data.original_title || wp.customize.Menus.data.l10n.untitled }}</span> 72 </span> 73 <span class="item-controls"> 74 <button type="button" class="button-link item-edit" aria-expanded="false"><span class="screen-reader-text"> 75 <?php 76 /* translators: 1: Title of a menu item, 2: Type of a menu item. */ 77 printf( __( 'Edit menu item: %1$s (%2$s)' ), '{{ data.title || wp.customize.Menus.data.l10n.untitled }}', '{{ data.item_type_label }}' ); 78 ?> 79 </span><span class="toggle-indicator" aria-hidden="true"></span></button> 80 <button type="button" class="button-link item-delete submitdelete deletion"><span class="screen-reader-text"> 81 <?php 82 /* translators: 1: Title of a menu item, 2: Type of a menu item. */ 83 printf( __( 'Remove Menu Item: %1$s (%2$s)' ), '{{ data.title || wp.customize.Menus.data.l10n.untitled }}', '{{ data.item_type_label }}' ); 84 ?> 85 </span></button> 86 </span> 87 </div> 88 </div> 89 90 <div class="menu-item-settings" id="menu-item-settings-{{ data.menu_item_id }}"> 91 <# if ( 'custom' === data.item_type ) { #> 92 <p class="field-url description description-thin"> 93 <label for="edit-menu-item-url-{{ data.menu_item_id }}"> 94 <?php _e( 'URL' ); ?><br /> 95 <input class="widefat code edit-menu-item-url" type="text" id="edit-menu-item-url-{{ data.menu_item_id }}" name="menu-item-url" /> 96 </label> 97 </p> 98 <# } #> 99 <p class="description description-thin"> 100 <label for="edit-menu-item-title-{{ data.menu_item_id }}"> 101 <?php _e( 'Navigation Label' ); ?><br /> 102 <input type="text" id="edit-menu-item-title-{{ data.menu_item_id }}" placeholder="{{ data.original_title }}" class="widefat edit-menu-item-title" name="menu-item-title" /> 103 </label> 104 </p> 105 <p class="field-link-target description description-thin"> 106 <label for="edit-menu-item-target-{{ data.menu_item_id }}"> 107 <input type="checkbox" id="edit-menu-item-target-{{ data.menu_item_id }}" class="edit-menu-item-target" value="_blank" name="menu-item-target" /> 108 <?php _e( 'Open link in a new tab' ); ?> 109 </label> 110 </p> 111 <p class="field-title-attribute field-attr-title description description-thin"> 112 <label for="edit-menu-item-attr-title-{{ data.menu_item_id }}"> 113 <?php _e( 'Title Attribute' ); ?><br /> 114 <input type="text" id="edit-menu-item-attr-title-{{ data.menu_item_id }}" class="widefat edit-menu-item-attr-title" name="menu-item-attr-title" /> 115 </label> 116 </p> 117 <p class="field-css-classes description description-thin"> 118 <label for="edit-menu-item-classes-{{ data.menu_item_id }}"> 119 <?php _e( 'CSS Classes' ); ?><br /> 120 <input type="text" id="edit-menu-item-classes-{{ data.menu_item_id }}" class="widefat code edit-menu-item-classes" name="menu-item-classes" /> 121 </label> 122 </p> 123 <p class="field-xfn description description-thin"> 124 <label for="edit-menu-item-xfn-{{ data.menu_item_id }}"> 125 <?php _e( 'Link Relationship (XFN)' ); ?><br /> 126 <input type="text" id="edit-menu-item-xfn-{{ data.menu_item_id }}" class="widefat code edit-menu-item-xfn" name="menu-item-xfn" /> 127 </label> 128 </p> 129 <p class="field-description description description-thin"> 130 <label for="edit-menu-item-description-{{ data.menu_item_id }}"> 131 <?php _e( 'Description' ); ?><br /> 132 <textarea id="edit-menu-item-description-{{ data.menu_item_id }}" class="widefat edit-menu-item-description" rows="3" cols="20" name="menu-item-description">{{ data.description }}</textarea> 133 <span class="description"><?php _e( 'The description will be displayed in the menu if the active theme supports it.' ); ?></span> 134 </label> 135 </p> 136 137 <?php 138 /** 139 * Fires at the end of the form field template for nav menu items in the customizer. 140 * 141 * Additional fields can be rendered here and managed in JavaScript. 142 * 143 * @since 5.4.0 144 */ 145 do_action( 'wp_nav_menu_item_custom_fields_customize_template' ); 146 ?> 147 148 <div class="menu-item-actions description-thin submitbox"> 149 <# if ( ( 'post_type' === data.item_type || 'taxonomy' === data.item_type ) && '' !== data.original_title ) { #> 150 <p class="link-to-original"> 151 <?php 152 /* translators: Nav menu item original title. %s: Original title. */ 153 printf( __( 'Original: %s' ), '<a class="original-link" href="{{ data.url }}">{{ data.original_title }}</a>' ); 154 ?> 155 </p> 156 <# } #> 157 158 <button type="button" class="button-link button-link-delete item-delete submitdelete deletion"><?php _e( 'Remove' ); ?></button> 159 <span class="spinner"></span> 160 </div> 161 <input type="hidden" name="menu-item-db-id[{{ data.menu_item_id }}]" class="menu-item-data-db-id" value="{{ data.menu_item_id }}" /> 162 <input type="hidden" name="menu-item-parent-id[{{ data.menu_item_id }}]" class="menu-item-data-parent-id" value="{{ data.parent }}" /> 163 </div><!-- .menu-item-settings--> 164 <ul class="menu-item-transport"></ul> 165 <?php 166 } 167 168 /** 169 * Return parameters for this control. 170 * 171 * @since 4.3.0 172 * 173 * @return array Exported parameters. 174 */ 175 public function json() { 176 $exported = parent::json(); 177 $exported['menu_item_id'] = $this->setting->post_id; 178 179 return $exported; 180 } 181 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Dec 22 01:00:02 2024 | Cross-referenced by PHPXref 0.7.1 |