PluginProbe ʕ •ᴥ•ʔ
Nested Pages / 3.2.15
Nested Pages v3.2.15
3.2.15 3.2.14 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 trunk 1.0 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.3.0 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.2 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.3.1 1.6.3.2 1.6.4 1.6.5 1.6.5.1 1.6.5.2 1.6.6 1.6.7 1.6.8 1.7.0 1.7.1 2.0.1 2.0.2 2.0.3 2.0.4 3.0.1 3.0.10 3.0.11 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.20 3.1.21 3.1.22 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7
wp-nested-pages / app / Entities / NavMenu / NavMenuFrontEnd.php
wp-nested-pages / app / Entities / NavMenu Last commit date
NavMenuActions.php 4 years ago NavMenuFrontEnd.php 3 years ago NavMenuRemoveItem.php 8 years ago NavMenuRepository.php 4 years ago NavMenuSync.php 3 years ago NavMenuSyncListing.php 5 days ago NavMenuSyncMenu.php 8 years ago NavMenuTrashActions.php 7 years ago
NavMenuFrontEnd.php
59 lines
1 <?php
2 namespace NestedPages\Entities\NavMenu;
3
4 use NestedPages\Entities\NavMenu\NavMenuRepository;
5
6 /**
7 * Edits/Corrections to the generated nav menu on the front-end
8 */
9 class NavMenuFrontEnd
10 {
11 /**
12 * Nav Menu Repository
13 */
14 private $nav_menu_repo;
15
16 public function __construct()
17 {
18 $this->nav_menu_repo = new NavMenuRepository;
19 add_filter('nav_menu_link_attributes', [$this, 'linkAttribute'], 10, 3);
20 add_filter('nav_menu_link_attributes', [$this, 'hrefAttribute'], 10, 3);
21 }
22
23 /**
24 * Filter the link attributes on the generated menu
25 */
26 public function linkAttribute($atts, $item, $args)
27 {
28 if ( get_option('nestedpages_menusync') !== 'sync' ) return $atts;
29 if ( get_option('nestedpages_disable_menu') == 'true' ) return $atts;
30 if ( $this->nav_menu_repo->getMenuID() == null ) return $atts;
31
32 if ( !isset($args->menu->term_id) ) return $atts;
33 if ( $args->menu->term_id !== $this->nav_menu_repo->getMenuID() ) return $atts;
34
35 // Remove the rel= attribute created from saving the menu object for syncing
36 foreach($atts as $attribute => $value){
37 if ( strtolower($attribute) != 'rel' ) continue;
38 if ( $value == $item->object ) unset($atts[$attribute]);
39 if ( is_numeric($value) ) unset($atts[$attribute]);
40 }
41
42 return $atts;
43 }
44
45 /**
46 * Add a custom link if one is set
47 */
48 public function hrefAttribute($atts, $item, $args)
49 {
50 if ( get_option('nestedpages_menusync') !== 'sync' ) return $atts;
51 if ( get_option('nestedpages_disable_menu') == 'true' ) return $atts;
52 if ( $this->nav_menu_repo->getMenuID() == null ) return $atts;
53 if ( !isset($item->object_id) ) return $atts;
54 $custom_url = get_post_meta($item->object_id, '_np_nav_custom_url', true);
55 if ( !$custom_url ) return $atts;
56 $atts['href'] = $custom_url;
57 return $atts;
58 }
59 }