Chèn link vào widget menu wordpress

admin21/01/2024 2380

Bạn dùng widget menu để hiện thị menu ra siderbar tuy nhiên khi click vào tiêu đề của widget thì không ra được link. Hãy dùng đoạn code sau để overide widget mặc định của menu wordpress nhé.

php-template
if (!class_exists('Abweb_WP_Nav_Menu_Widget')) { class Abweb_WP_Nav_Menu_Widget extends WP_Nav_Menu_Widget { public function widget($args, $instance) { echo $args['before_widget']; if (!empty($instance['title'])) { echo $args['before_title'] . '<a href="' . esc_url($instance['link']) . '">' . apply_filters('widget_title', $instance['title'], $instance, $this->id_base) . '</a>' . $args['after_title']; } if (!empty($instance['nav_menu'])) { echo '<div class="menu-container">'; $nav_menu_args = array('menu' => $instance['nav_menu']); wp_nav_menu(apply_filters('widget_nav_menu_args', $nav_menu_args, $instance, $this->id_base)); echo '</div>'; } echo $args['after_widget']; } public function form($instance) { $title = isset($instance['title']) ? esc_attr($instance['title']) : ''; $nav_menu = isset($instance['nav_menu']) ? esc_attr($instance['nav_menu']) : ''; $link = isset($instance['link']) ? esc_url($instance['link']) : '#'; ?> <p> <label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /> </p> <p> <label for="<?php echo $this->get_field_id('nav_menu'); ?>"><?php _e('Select Menu:'); ?></label> <?php echo '<select id="' . $this->get_field_id('nav_menu') . '" name="' . $this->get_field_name('nav_menu') . '" class="widefat">'; echo '<option value="">'. esc_html__('— Select —', 'text_domain') .'</option>'; foreach (wp_get_nav_menus() as $menu) { echo '<option value="' . $menu->term_id . '" ' . selected($nav_menu, $menu->term_id, false) . '>' . esc_html($menu->name) . '</option>'; } echo '</select>'; ?> </p> <p> <label for="<?php echo $this->get_field_id('link'); ?>"><?php _e('Link URL:'); ?></label> <input class="widefat" id="<?php echo $this->get_field_id('link'); ?>" name="<?php echo $this->get_field_name('link'); ?>" type="text" value="<?php echo $link; ?>" /> </p> <?php } public function update($new_instance, $old_instance) { $instance = parent::update($new_instance, $old_instance); $instance['link'] = esc_url($new_instance['link']); return $instance; } } } function replace_Abweb_wp_nav_menu_widget() { unregister_widget('WP_Nav_Menu_Widget'); register_widget('Abweb_WP_Nav_Menu_Widget'); } add_action('widgets_init', 'replace_Abweb_wp_nav_menu_widget');
Hỏi đáp

Bài viết mới nhất
admin12/02/2025 97
admin11/02/2025 80
admin04/02/2025 96
admin19/12/2024 133
admin19/12/2024 141
admin19/12/2024 159
admin09/12/2024 201
_load_textdomain_just_in_time
admin21/11/2024 330
Chia sẻ mới nhất
admin12/02/2025 97
admin11/02/2025 80
admin09/12/2024 201
_load_textdomain_just_in_time
admin21/11/2024 330
admin21/11/2024 299
admin20/11/2024 413
admin09/03/2024 2477
admin20/02/2024 1033
admin19/02/2024 1827
admin18/02/2024 1653