Skip to content

Instantly share code, notes, and snippets.

@Melindrea
Last active December 15, 2015 19:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Melindrea/5308633 to your computer and use it in GitHub Desktop.
Save Melindrea/5308633 to your computer and use it in GitHub Desktop.
Unorganized (for now) elements of snippets/tools/stuff for WordPress
/**
* Remove the id="" on nav menu items
* Return 'menu-slug' for nav menu classes
* Set 'current-menu' etc to 'active', 'active-parent', 'active-ancestor'
* Based on roots
*/
function pb_nav_menu_css_class($classes, $item) {
$slug = sanitize_title($item->title);
$classes = preg_replace('/current-(menu|page)-(parent|ancestor)/', 'active-$2', $classes);
$classes = preg_replace('/(current([-_](menu|page)[-_])(item|parent|ancestor))/', 'active', $classes);
$classes = preg_replace('/^((menu|page)[-_\w+]+)+/', '', $classes);
$classes[] = 'menu-' . $slug;
$classes = array_unique($classes);
return array_filter($classes, 'is_element_empty');
}
add_filter('nav_menu_css_class', 'pb_nav_menu_css_class', 10, 2);
add_filter('nav_menu_item_id', '__return_null');
//Function for redirecting to the created post/page in WordPress to the post/page itself
add_filter('redirect_post_location', 'redirect_to_post_on_publish_or_save');
function redirect_to_post_on_publish_or_save($location)
{
if (isset($_POST['save']) || isset($_POST['publish'])) {
if (preg_match("/post=([0-9]*)/", $location, $match)) {
$pl = get_permalink($match[1]);
if ($pl) {
wp_redirect($pl);
}
}
}
}
$defaults = array(
'theme_location' => '',
'menu' => '',
'container' => 'div',
'container_class' => '',
'container_id' => '',
'menu_class' => 'menu',
'menu_id' => '',
'echo' => true,
'fallback_cb' => 'wp_page_menu',
'before' => '',
'after' => '',
'link_before' => '',
'link_after' => '',
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
'depth' => 0,
'walker' => ''
);
<div class="menu-primary-navigation-container">
<ul id="menu-primary-navigation" class="menu">
<li id="menu-item-1" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-1 current_page_item menu-item-1">
<a href="http://yoursite.com/">Home</a>
</li>
<li id="menu-item-2" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2">
<a href="http://yoursite.com/lorem-ipsum/">Lorem ipsum</a>
</li>
<li id="menu-item-3" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-3">
<a href="#">Dolor sit</a>
<ul class="sub-menu">
<li id="menu-item-4" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4">
<a href="http://yoursite.com/amet/">Amet</a>
</li>
</ul>
</li>
</ul>
</div>
Active classes: current_page_item, current-menu-ancestor, current-menu-item, current-menu-ancestor current-menu-parent current_page_parent current_page_ancestor
<ul id="menu-primary-navigation" class="nav">
<li class="active menu-home"><a href="/">Home</a></li>
<li class="menu-lorem-ipsum"><a href="/lorem-ipsum/">Lorem ipsum</a></li>
<li class="menu-dolor-sit dropdown"><a href="#">Dolor sit</a>
<ul class="dropdown-menu">
<li class="menu-amet"><a href="/amet/">Amet</a></li>
</ul>
</li>
</ul>
Active classes: active
Open dropdown: dropdown.open
primary-navigation = sluggified version of menu name
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment