Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function wp_nav_menu_aslwordpress( $nav_menu, $args ) {
- $nav_menu = preg_replace("~\s+id=\".+?\"~", "", $nav_menu);
- $nav_menu = preg_replace_callback(
- "~\s+class=\"(.+?)\".*?>[^<]*<([^\s]+)~s",
- function ($class) {
- if (in_array("current-menu-item", preg_split("~\s+~", $class[1])))
- {
- return '><' . $class[2] . ' class="active"';
- }
- else
- {
- return '><' . $class[2];
- }
- },
- $nav_menu
- );
- $nav_menu = preg_replace("~\s+aria-.+?\".+?\"~", "", $nav_menu);
- $nav_menu = preg_replace("~<button.+?/button>~", "", $nav_menu);
- do {
- $tmp = $nav_menu;
- $nav_menu = preg_replace('#<([^ >]+)[^>]*>([[:space:]]| )*</\1>#', '', $nav_menu);
- } while ( $nav_menu !== $tmp );
- $xml = simplexml_load_string($nav_menu);
- for ($i = 0; $i < count($xml->li); $i++)
- {
- if (preg_match("~^(.*?<a.+?href=\")([^\"]*?)\">(.+?)</a>~s", $xml->li[$i]->asXML(), $title)
- && $title[2] == "#")
- {
- $xml->li[$i] = "</li><li class=\"heading\">" . $title[3];
- $xml->li[$i]->addAttribute('class', 'split');
- }
- if ($xml->li[$i]->ul)
- {
- $content = $xml->li[$i]->ul->asXML();
- if (preg_match("~^(.*?)\[(.*?)\]~", $title[3], $header))
- {
- $title[3] = $header[1];
- $content = preg_replace("~^<ul>~", "<ul><li class=\"h_title\">" . $header[2] . "</li>", trim($content));
- }
- $xml->li[$i] = "<a class=\"open_m\" href=\"#\">" . $title[3] . "</a> <div class=\"drop_down_block drop-block\">" .
- $content . "</div>";
- $xml->li[$i]->addAttribute('class', 'item item-drop');
- }
- }
- $nav_menu = html_entity_decode($xml->asXML(), ENT_NOQUOTES, 'UTF-8');
- $nav_menu = preg_replace("~<[?]xml[^>]+>\s*~", "", $nav_menu);
- return $nav_menu;
- }
- add_filter( 'wp_nav_menu', 'wp_nav_menu_aslwordpress', 10, 2 );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement