55 lines
1.5 KiB
PHP
55 lines
1.5 KiB
PHP
<?php
|
|
// Copyright 2026 Umbra Tools (umbratools.com)
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
/**
|
|
* Navigation Menu Hooks
|
|
*
|
|
* @package BD_Murphy
|
|
*/
|
|
|
|
if (!defined('ABSPATH')) {
|
|
exit;
|
|
}
|
|
|
|
add_filter('wp_nav_menu_items', 'bdm_filter_nav_menu_items', 10, 2);
|
|
|
|
function bdm_filter_nav_menu_items($items, $args) {
|
|
if ($args->theme_location !== 'primary') {
|
|
return $items;
|
|
}
|
|
|
|
if (bdm_series_exist()) {
|
|
$series_item = '<li class="menu-item menu-item-type-taxonomy"><a href="' . home_url('/series/') . '">' . __('Series', 'bd-murphy') . '</a></li>';
|
|
|
|
$books_pos = strpos($items, 'Books');
|
|
if ($books_pos !== false) {
|
|
$before_books = substr($items, 0, $books_pos);
|
|
$from_books = substr($items, $books_pos);
|
|
$books_end = strpos($from_books, '</li>');
|
|
$books_item = substr($from_books, 0, $books_end + 5);
|
|
$rest = substr($from_books, $books_end + 5);
|
|
|
|
return $before_books . $books_item . $series_item . $rest;
|
|
}
|
|
}
|
|
|
|
return $items;
|
|
}
|
|
|
|
function bdm_series_exist() {
|
|
if (class_exists('BD_BookShelfHelper')) {
|
|
return BD_BookShelfHelper::series_count() > 0;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
add_filter('nav_menu_css_class', 'bdm_nav_menu_css_class', 10, 4);
|
|
|
|
function bdm_nav_menu_css_class($classes, $item, $args, $depth) {
|
|
if ($item->url && strpos($item->url, '/series/') !== false) {
|
|
$classes[] = 'series-menu-item';
|
|
}
|
|
return $classes;
|
|
}
|