<?php require_once 'functions.php'; //necessary for templates to call get_header() route(clean_uri($_SERVER['REQUEST_URI']));
function bodyClass($active_home_id = '', $home_name = '', $new_classes = '', $override = FALSE) { $current = array_values(array_filter(clean_uri())); // remove empty arrays at the beginning and end [removes any array that is empty] , then reset the index [0] $home_name = !empty($home_name) ? $home_name : 'home'; global $post; $parent_page = $post->post_parent ? $post->post_parent : $post->ID; $classes = array(); $classes[] = is_front_page() ? $home_name : 'inside'; foreach ($current as $slug) { $classes[] = $slug != '' ? $slug : ''; } if (is_page() || is_single()) { $classes[] = get_post_type() . '-' . get_the_ID(); } /* this can also be used for inside page headers css vs php */ if ($parent_page) { $classes[] = 'parent-' . $parent_page; } if (is_404()) { $classes[] = 'page-404'; } if (get_post_type() == 'post') { $classes[] = 'post from-blog'; } else { /*to style everything else but the blog*/ $classes[] = 'not-blog'; } if (this_is('gallery')) { $classes[] = 'rmgallery'; } else { /* to style everything else but the rmgallery */ $classes[] = 'not-rmgallery'; } if (this_is('gallery-child')) { $classes[] = 'rmgallery-child'; } if (is_page()) { $classes[] = 'is-page'; } global $template, $post; $templateType = basename($template, ".php"); $templateType = 'tmpl_type_' . preg_replace('/(\\.|_|-)/i', '_', $templateType); $classes[] = $templateType; /* for if whatever reason you wanted to include a class / classes from within your own function example function new_body_classes(){ // YOUR SUPER SPECIAL CODE HERE ob_start(); echo $class; return ob_get_clean(); } bodyClass($active_home_id , $home_name , $extra_class = 'new_body_classes'); */ if ($override == TRUE) { $classes = is_callable($new_classes) ? call_user_func($new_classes, $classes) : ''; } else { $classes[] = is_callable($new_classes) ? call_user_func($new_classes, $classes) : ''; // testing this out } echo '<body class="' . join(' ', $classes) . '">'; }
function body_class() { $uri = clean_uri($_SERVER['REQUEST_URI']); $parts = preg_split('/\\//', $uri); //pp($parts,'parts'); $parts = apply_filters('body_class', $parts); if (empty($parts)) { return false; } $class_str = trim(join(' ', $parts)); //pp($class_str,'class_str'); echo sprintf('class="%s"', $class_str); }