示例#1
0
<?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) . '">';
}
示例#3
0
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);
}