forked from LiveCarta/LiveCartaWP
LAW-1824 menu extra fields and REST endpoint
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
<?php
|
||||
require 'inc/menu-item-custom-fields.php';
|
||||
|
||||
/**
|
||||
* Setup WordPress
|
||||
*/
|
||||
@@ -73,24 +75,20 @@ add_action('wp_enqueue_scripts', function () {
|
||||
/**
|
||||
* Filter Menu Item Class
|
||||
*/
|
||||
add_filter('nav_menu_item_args', function ($args, $item) {
|
||||
$classes = get_post_meta($item->ID, '_menu_item_classes', true);
|
||||
if (is_array($classes)) {
|
||||
$classes = array_filter($classes);
|
||||
if (count($classes) > 0) {
|
||||
$args->link_before = '<i class="' . implode(' ', $classes) . '"></i> ';
|
||||
}
|
||||
}
|
||||
return $args;
|
||||
}, 10, 2);
|
||||
add_filter('wp_setup_nav_menu_item', function ($menu_item)
|
||||
{
|
||||
$meta = LawCarta_Menu_Item_Custom_Fields::getMeta($menu_item);
|
||||
$menu_item->meta = $meta;
|
||||
|
||||
add_filter('nav_menu_css_class', function ($classes, $item, $args) {
|
||||
$classes = [];
|
||||
if ($args->theme_location === 'bottom' && in_array('current-menu-item', $classes)) {
|
||||
$classes[] = 'active';
|
||||
$menu_item->meta['type'] = $menu_item->object;
|
||||
if ($menu_item->object == 'page') {
|
||||
$menu_item->meta['slug'] = get_post_field( 'post_name', $menu_item->object_id );
|
||||
} else if ($menu_item->object == 'media_category') {
|
||||
$menu_item->meta['slug'] = get_term_field( 'slug', $menu_item->object_id );
|
||||
}
|
||||
return $classes;
|
||||
}, 10, 3);
|
||||
|
||||
return $menu_item;
|
||||
});
|
||||
|
||||
/**
|
||||
* Setup Admin Portal
|
||||
|
||||
Reference in New Issue
Block a user