Version Description
- Greatly improve category widget performance
Download this release
Release Info
Developer | Mat Lipe |
Plugin | Advanced Sidebar Menu |
Version | 7.3.0 |
Comparing to | |
See all releases |
Code changes from version 7.2.5 to 7.3.0
- advanced-sidebar-menu.php +4 -4
- readme.txt +16 -14
- src/Menus/Category.php +9 -64
advanced-sidebar-menu.php
CHANGED
@@ -4,7 +4,7 @@ Plugin Name: Advanced Sidebar Menu
|
|
4 |
Plugin URI: https://matlipe.com/advanced-sidebar-menu/
|
5 |
Description: Creates dynamic menus based on parent/child relationship of your pages or categories.
|
6 |
Author: Mat Lipe
|
7 |
-
Version: 7.
|
8 |
Author URI: https://matlipe.com
|
9 |
Text Domain: advanced-sidebar-menu
|
10 |
*/
|
@@ -14,7 +14,7 @@ if ( defined( 'ADVANCED_SIDEBAR_BASIC_VERSION' ) ) {
|
|
14 |
return;
|
15 |
}
|
16 |
|
17 |
-
define( 'ADVANCED_SIDEBAR_BASIC_VERSION', '7.
|
18 |
define( 'ADVANCED_SIDEBAR_DIR', plugin_dir_path( __FILE__ ) );
|
19 |
|
20 |
if ( ! function_exists( 'advanced_sidebar_menu_load' ) ) {
|
@@ -124,7 +124,7 @@ function advanced_sidebar_menu_upgrade_notice( array $instance, WP_Widget $widge
|
|
124 |
<li><?php esc_html_e( 'Ability to exclude a page from all menus using a simple checkbox.', 'advanced-sidebar-menu' ); ?></li>
|
125 |
<li><?php esc_html_e( 'Number of levels of pages to show when always displayed child pages is not checked.', 'advanced-sidebar-menu' ); ?></li>
|
126 |
<li><?php esc_html_e( 'Ability to select and display custom post types.', 'advanced-sidebar-menu' ); ?></li>
|
127 |
-
<li><?php esc_html_e( 'Option to display the current page’s parents and
|
128 |
<?php
|
129 |
//category widget options
|
130 |
} else {
|
@@ -135,7 +135,7 @@ function advanced_sidebar_menu_upgrade_notice( array $instance, WP_Widget $widge
|
|
135 |
<?php
|
136 |
}
|
137 |
?>
|
138 |
-
<li><?php esc_html_e( 'Ability to display the widgets everywhere the sidebar
|
139 |
<strong> NEW</strong></li>
|
140 |
<li><?php esc_html_e( 'Support for custom navigation menus from Appearance -> Menus.', 'advanced-sidebar-menu' ); ?><strong> NEW</strong></li>
|
141 |
</ol>
|
4 |
Plugin URI: https://matlipe.com/advanced-sidebar-menu/
|
5 |
Description: Creates dynamic menus based on parent/child relationship of your pages or categories.
|
6 |
Author: Mat Lipe
|
7 |
+
Version: 7.3.0
|
8 |
Author URI: https://matlipe.com
|
9 |
Text Domain: advanced-sidebar-menu
|
10 |
*/
|
14 |
return;
|
15 |
}
|
16 |
|
17 |
+
define( 'ADVANCED_SIDEBAR_BASIC_VERSION', '7.3.0' );
|
18 |
define( 'ADVANCED_SIDEBAR_DIR', plugin_dir_path( __FILE__ ) );
|
19 |
|
20 |
if ( ! function_exists( 'advanced_sidebar_menu_load' ) ) {
|
124 |
<li><?php esc_html_e( 'Ability to exclude a page from all menus using a simple checkbox.', 'advanced-sidebar-menu' ); ?></li>
|
125 |
<li><?php esc_html_e( 'Number of levels of pages to show when always displayed child pages is not checked.', 'advanced-sidebar-menu' ); ?></li>
|
126 |
<li><?php esc_html_e( 'Ability to select and display custom post types.', 'advanced-sidebar-menu' ); ?></li>
|
127 |
+
<li><?php esc_html_e( 'Option to display the current page’s parents, grandparents, and children only, as well as siblings options.', 'advanced-sidebar-menu' ); ?></li>
|
128 |
<?php
|
129 |
//category widget options
|
130 |
} else {
|
135 |
<?php
|
136 |
}
|
137 |
?>
|
138 |
+
<li><?php esc_html_e( 'Ability to display the widgets everywhere the sidebar displays.', 'advanced-sidebar-menu' ); ?>
|
139 |
<strong> NEW</strong></li>
|
140 |
<li><?php esc_html_e( 'Support for custom navigation menus from Appearance -> Menus.', 'advanced-sidebar-menu' ); ?><strong> NEW</strong></li>
|
141 |
</ol>
|
readme.txt
CHANGED
@@ -4,9 +4,9 @@ Contributors: Mat Lipe
|
|
4 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=paypal%40matlipe%2ecom&lc=US&item_name=Advanced%20Sidebar%20Menu&no_note=0¤cy_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHostedGuest
|
5 |
Tags: menus, sidebar menu, hierarchy, category menu, pages menu
|
6 |
Requires at least: 4.6.0
|
7 |
-
Tested up to: 4.9.
|
8 |
Requires PHP: 5.2.4
|
9 |
-
Stable tag: 7.
|
10 |
|
11 |
== Description ==
|
12 |
|
@@ -53,8 +53,7 @@ Keeps the menu clean and usable. Only related items display so you don't have to
|
|
53 |
<h4>Pro Features</h4>
|
54 |
* Priority support.
|
55 |
* Ability to customize each page's link text.
|
56 |
-
*
|
57 |
-
* Click and drag styling for both the page and category widgets.
|
58 |
* Styling options for links including color, background color, size, and font weight.
|
59 |
* Styling options for different levels of links.
|
60 |
* Styling options for the current page or category.
|
@@ -62,23 +61,23 @@ Keeps the menu clean and usable. Only related items display so you don't have to
|
|
62 |
* Block styling options including borders and border colors.
|
63 |
* Bullet style selection from 7 styles or select none to have no bullets.
|
64 |
* Accordion menu support for pages, categories, and navigation menus.
|
65 |
-
* Accordion icon
|
66 |
-
* Accordion icon color selection.
|
67 |
* Accordion option to keep all sections closed until clicked.
|
68 |
* Accordion option to include highest level parent in accordion.
|
69 |
* Ability to exclude a page from all menus using a simple checkbox.
|
70 |
* Link ordering for the category widget.
|
|
|
71 |
* Ability to select and display custom post types.
|
72 |
* Ability to select and display custom taxonomies.
|
73 |
-
*
|
74 |
-
*
|
75 |
-
*
|
76 |
-
* Ability to display the widgets everywhere the sidebar display.
|
77 |
* Ability to select the parent page/category when using the display widget everywhere option. **NEW**
|
78 |
-
* Ability to display assigned posts under categories. **NEW**
|
79 |
-
* Ability to
|
80 |
-
*
|
81 |
-
*
|
|
|
82 |
* Access to members only support area.
|
83 |
|
84 |
<h4>Currently ships with the following languages</h4>
|
@@ -150,6 +149,9 @@ Yes. Based on whatever page, post, or category you are on, the menu will change
|
|
150 |
|
151 |
|
152 |
== Changelog ==
|
|
|
|
|
|
|
153 |
= 7.2.0 =
|
154 |
* New improved widget structure
|
155 |
|
4 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=paypal%40matlipe%2ecom&lc=US&item_name=Advanced%20Sidebar%20Menu&no_note=0¤cy_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHostedGuest
|
5 |
Tags: menus, sidebar menu, hierarchy, category menu, pages menu
|
6 |
Requires at least: 4.6.0
|
7 |
+
Tested up to: 4.9.7
|
8 |
Requires PHP: 5.2.4
|
9 |
+
Stable tag: 7.3.0
|
10 |
|
11 |
== Description ==
|
12 |
|
53 |
<h4>Pro Features</h4>
|
54 |
* Priority support.
|
55 |
* Ability to customize each page's link text.
|
56 |
+
* Click and drag styling for page, category, and navigation menu widgets.
|
|
|
57 |
* Styling options for links including color, background color, size, and font weight.
|
58 |
* Styling options for different levels of links.
|
59 |
* Styling options for the current page or category.
|
61 |
* Block styling options including borders and border colors.
|
62 |
* Bullet style selection from 7 styles or select none to have no bullets.
|
63 |
* Accordion menu support for pages, categories, and navigation menus.
|
64 |
+
* Accordion icon style and color selection.
|
|
|
65 |
* Accordion option to keep all sections closed until clicked.
|
66 |
* Accordion option to include highest level parent in accordion.
|
67 |
* Ability to exclude a page from all menus using a simple checkbox.
|
68 |
* Link ordering for the category widget.
|
69 |
+
* Number of levels of pages to show when always displayed child pages is not checked.
|
70 |
* Ability to select and display custom post types.
|
71 |
* Ability to select and display custom taxonomies.
|
72 |
+
* Optionally display the current page's parents, grandparents, and children only.
|
73 |
+
* Optionally display child page siblings when on a child page. With our without grandchildren available. .
|
74 |
+
* Ability to display the widgets everywhere the sidebar displays. **NEW**
|
|
|
75 |
* Ability to select the parent page/category when using the display widget everywhere option. **NEW**
|
76 |
+
* Ability to display assigned posts or custom post types under categories. **NEW**
|
77 |
+
* Ability to limit the number of posts or custom post types to display under categories. **NEW**
|
78 |
+
* Support for custom navigation menus from Appearance -> Menus. **NEW**
|
79 |
+
* Ability to display the current Navigation Menu's items parents and children only. **NEW**
|
80 |
+
* Optionally display the top level Navigation Menu's items when there are no child items or not viewing a menu item. **NEW**
|
81 |
* Access to members only support area.
|
82 |
|
83 |
<h4>Currently ships with the following languages</h4>
|
149 |
|
150 |
|
151 |
== Changelog ==
|
152 |
+
= 7.3.0 =
|
153 |
+
* Greatly improve category widget performance
|
154 |
+
|
155 |
= 7.2.0 =
|
156 |
* New improved widget structure
|
157 |
|
src/Menus/Category.php
CHANGED
@@ -21,14 +21,6 @@ class Advanced_Sidebar_Menu_Menus_Category extends Advanced_Sidebar_Menu_Menus_A
|
|
21 |
*/
|
22 |
public $ancestors = array();
|
23 |
|
24 |
-
/**
|
25 |
-
* taxonomy
|
26 |
-
*
|
27 |
-
* @deprecated 7.0.0
|
28 |
-
*
|
29 |
-
* @var string
|
30 |
-
*/
|
31 |
-
public $taxonomy = 'category';
|
32 |
|
33 |
/**
|
34 |
* top_level_term
|
@@ -58,7 +50,6 @@ class Advanced_Sidebar_Menu_Menus_Category extends Advanced_Sidebar_Menu_Menus_A
|
|
58 |
* @return void
|
59 |
*/
|
60 |
public function set_current_top_level_term( WP_Term $term ) {
|
61 |
-
$this->top_id = $term->term_id;
|
62 |
$this->top_level_term = $term;
|
63 |
}
|
64 |
|
@@ -205,9 +196,7 @@ class Advanced_Sidebar_Menu_Menus_Category extends Advanced_Sidebar_Menu_Menus_A
|
|
205 |
|
206 |
|
207 |
public function get_taxonomy() {
|
208 |
-
|
209 |
-
|
210 |
-
return $this->taxonomy;
|
211 |
}
|
212 |
|
213 |
|
@@ -221,16 +210,12 @@ class Advanced_Sidebar_Menu_Menus_Category extends Advanced_Sidebar_Menu_Menus_A
|
|
221 |
|
222 |
|
223 |
public function get_order_by() {
|
224 |
-
|
225 |
-
|
226 |
-
return $this->order_by;
|
227 |
}
|
228 |
|
229 |
|
230 |
public function get_order() {
|
231 |
-
|
232 |
-
|
233 |
-
return $this->order;
|
234 |
}
|
235 |
|
236 |
|
@@ -240,10 +225,6 @@ class Advanced_Sidebar_Menu_Menus_Category extends Advanced_Sidebar_Menu_Menus_A
|
|
240 |
if ( $this->checked( self::DISPLAY_ON_SINGLE ) ) {
|
241 |
$display = true;
|
242 |
}
|
243 |
-
if ( has_filter( 'advanced_sidebar_menu_proper_single' ) ) {
|
244 |
-
_deprecated_hook( 'advanced_sidebar_menu_proper_single', '7.0.0', 'advanced-sidebar-menu/menus/category/is-displayed' );
|
245 |
-
$display = ! apply_filters( 'advanced_sidebar_menu_proper_single', ! $display, $this->args, $this->instance, $this );
|
246 |
-
}
|
247 |
} elseif ( $this->is_tax() ) {
|
248 |
$display = true;
|
249 |
}
|
@@ -363,12 +344,7 @@ class Advanced_Sidebar_Menu_Menus_Category extends Advanced_Sidebar_Menu_Menus_A
|
|
363 |
* @return array
|
364 |
*/
|
365 |
public function add_has_children_category_class( $classes, $category ) {
|
366 |
-
|
367 |
-
'parent' => $category->term_id,
|
368 |
-
'hide_empty' => false,
|
369 |
-
'number' => 1,
|
370 |
-
) );
|
371 |
-
if ( ! empty( $children ) ) {
|
372 |
$classes[] = 'has_children';
|
373 |
}
|
374 |
|
@@ -409,20 +385,12 @@ class Advanced_Sidebar_Menu_Menus_Category extends Advanced_Sidebar_Menu_Menus_A
|
|
409 |
public function is_current_term_ancestor( WP_Term $term ) {
|
410 |
$return = false;
|
411 |
if ( (int) $term->term_id === (int) $this->top_level_term->term_id || in_array( $term->term_id, $this->ancestors, false ) ) {
|
412 |
-
$
|
413 |
-
|
414 |
-
'fields' => 'ids',
|
415 |
-
) );
|
416 |
-
if ( ! empty( $all_children ) ) {
|
417 |
$return = true;
|
418 |
}
|
419 |
}
|
420 |
|
421 |
-
if ( has_filter( 'advanced_sidebar_menu_second_level_category' ) ) {
|
422 |
-
_deprecated_hook( 'advanced_sidebar_menu_second_level_category', '7.0.0', 'advanced-sidebar-menu/menus/category/is-current-term-ancestor' );
|
423 |
-
$return = apply_filters( 'advanced_sidebar_menu_second_level_category', $return, $term, $this );
|
424 |
-
}
|
425 |
-
|
426 |
return apply_filters( 'advanced-sidebar-menu/menus/category/is-current-term-ancestor', $return, $term, $this );
|
427 |
|
428 |
}
|
@@ -461,14 +429,12 @@ class Advanced_Sidebar_Menu_Menus_Category extends Advanced_Sidebar_Menu_Menus_A
|
|
461 |
|
462 |
foreach ( $this->get_top_level_terms() as $_cat ) {
|
463 |
$this->set_current_top_level_term( $_cat );
|
464 |
-
|
465 |
-
$all_categories = $this->get_child_terms();
|
466 |
-
if ( ! $this->is_term_displayed( $all_categories ) ) {
|
467 |
continue;
|
468 |
}
|
469 |
|
470 |
if ( ! $menu_open || ( 'widget' === $this->instance[ self::EACH_CATEGORY_DISPLAY ] ) ) {
|
471 |
-
//
|
472 |
echo $this->args['before_widget'];
|
473 |
|
474 |
do_action( 'advanced-sidebar-menu/menus/category/render', $this );
|
@@ -501,32 +467,11 @@ class Advanced_Sidebar_Menu_Menus_Category extends Advanced_Sidebar_Menu_Menus_A
|
|
501 |
echo $this->args['after_widget'];
|
502 |
}
|
503 |
|
504 |
-
|
505 |
|
506 |
-
|
507 |
-
/**
|
508 |
-
* @deprecated
|
509 |
-
*
|
510 |
-
*/
|
511 |
-
public function first_level_category( WP_Term $term ) {
|
512 |
-
_deprecated_function( 'Advanced_Sidebar_Menu_Menus_Category::first_level_category', '7.0.0', 'Advanced_Sidebar_Menu_Menus_Category::is_first_level_term' );
|
513 |
-
|
514 |
-
return $this->is_first_level_term( $term );
|
515 |
}
|
516 |
|
517 |
|
518 |
-
/**
|
519 |
-
* @deprecated
|
520 |
-
*/
|
521 |
-
public function second_level_cat( WP_Term $term ) {
|
522 |
-
_deprecated_function( 'Advanced_Sidebar_Menu_Menus_Category::second_level_cat', '7.0.0', 'Advanced_Sidebar_Menu_Menus_Category::is_current_term_ancestor' );
|
523 |
-
|
524 |
-
$return = ( $this->is_current_term_ancestor( $term ) && $this->has_children( $term ) );
|
525 |
-
|
526 |
-
return apply_filters( 'advanced_sidebar_menu_second_level_category', $return, $term, $this );
|
527 |
-
|
528 |
-
}
|
529 |
-
|
530 |
/******************** static ****************************/
|
531 |
|
532 |
/**
|
21 |
*/
|
22 |
public $ancestors = array();
|
23 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
/**
|
26 |
* top_level_term
|
50 |
* @return void
|
51 |
*/
|
52 |
public function set_current_top_level_term( WP_Term $term ) {
|
|
|
53 |
$this->top_level_term = $term;
|
54 |
}
|
55 |
|
196 |
|
197 |
|
198 |
public function get_taxonomy() {
|
199 |
+
return apply_filters( 'advanced_sidebar_menu_taxonomy', 'category', $this->args, $this->instance, $this );
|
|
|
|
|
200 |
}
|
201 |
|
202 |
|
210 |
|
211 |
|
212 |
public function get_order_by() {
|
213 |
+
return apply_filters( 'advanced_sidebar_menu_category_orderby', 'name', $this->args, $this->instance, $this );
|
|
|
|
|
214 |
}
|
215 |
|
216 |
|
217 |
public function get_order() {
|
218 |
+
return apply_filters( 'advanced_sidebar_menu_category_order', 'ASC', $this->args, $this->instance, $this );
|
|
|
|
|
219 |
}
|
220 |
|
221 |
|
225 |
if ( $this->checked( self::DISPLAY_ON_SINGLE ) ) {
|
226 |
$display = true;
|
227 |
}
|
|
|
|
|
|
|
|
|
228 |
} elseif ( $this->is_tax() ) {
|
229 |
$display = true;
|
230 |
}
|
344 |
* @return array
|
345 |
*/
|
346 |
public function add_has_children_category_class( $classes, $category ) {
|
347 |
+
if ( $this->has_children( $category ) ) {
|
|
|
|
|
|
|
|
|
|
|
348 |
$classes[] = 'has_children';
|
349 |
}
|
350 |
|
385 |
public function is_current_term_ancestor( WP_Term $term ) {
|
386 |
$return = false;
|
387 |
if ( (int) $term->term_id === (int) $this->top_level_term->term_id || in_array( $term->term_id, $this->ancestors, false ) ) {
|
388 |
+
$children = get_term_children( $term->term_id, $this->get_taxonomy() );
|
389 |
+
if ( ! empty( $children) ) {
|
|
|
|
|
|
|
390 |
$return = true;
|
391 |
}
|
392 |
}
|
393 |
|
|
|
|
|
|
|
|
|
|
|
394 |
return apply_filters( 'advanced-sidebar-menu/menus/category/is-current-term-ancestor', $return, $term, $this );
|
395 |
|
396 |
}
|
429 |
|
430 |
foreach ( $this->get_top_level_terms() as $_cat ) {
|
431 |
$this->set_current_top_level_term( $_cat );
|
432 |
+
if ( ! $this->is_term_displayed( $this->get_child_terms() ) ) {
|
|
|
|
|
433 |
continue;
|
434 |
}
|
435 |
|
436 |
if ( ! $menu_open || ( 'widget' === $this->instance[ self::EACH_CATEGORY_DISPLAY ] ) ) {
|
437 |
+
//phpcs:disable
|
438 |
echo $this->args['before_widget'];
|
439 |
|
440 |
do_action( 'advanced-sidebar-menu/menus/category/render', $this );
|
467 |
echo $this->args['after_widget'];
|
468 |
}
|
469 |
|
470 |
+
//phpcs:enable
|
471 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
472 |
}
|
473 |
|
474 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
475 |
/******************** static ****************************/
|
476 |
|
477 |
/**
|