public
Last active

The Events Calendar: Basic Conditional Wrappers

  • Download Gist
events-conditional-wrappers.php
PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
<?php
/*-----------------------------------------------------------------------------------*/
/* Conditional Logic to Detect Various Event Related Views/Pages
/*-----------------------------------------------------------------------------------*/
 
if( tribe_is_month() && !is_tax() ) { // Month View Page
 
echo 'were on the month view page';
 
} elseif( tribe_is_month() && is_tax() ) { // Month View Category Page
 
echo 'were on the month view category page';
 
} elseif( tribe_is_past() || tribe_is_upcoming() && !is_tax() ) { // List View Page
 
echo 'were on the list view page';
 
} elseif( tribe_is_past() || tribe_is_upcoming() && is_tax() ) { // List View Category Page
 
echo 'were on an list view category page';
 
} elseif( tribe_is_week() && !is_tax() ) { // Week View Page
 
echo 'were the week view page';
 
} elseif( tribe_is_week() && is_tax() ) { // Week View Category Page
 
echo 'were the week view category page';
 
} elseif( tribe_is_day() && !is_tax() ) { // Day View Page
 
echo 'were on the day view page';
 
} elseif( tribe_is_day() && is_tax() ) { // Day View Category Page
 
echo 'were on a day view category page';
 
} elseif( tribe_is_map() && !is_tax() ) { // Map View Page
 
echo 'were on the map view page';
 
} elseif( tribe_is_map() && is_tax() ) { // Map View Category Page
 
echo 'were on the map view category page';
 
} elseif( tribe_is_photo() && !is_tax() ) { // Photo View Page
 
echo 'were on the photo view page';
 
} elseif( tribe_is_photo() && is_tax() ) { // Photo View Category Page
 
echo 'were on the photo view category page';
 
} elseif( tribe_is_event() && is_single() ) { // Single Events
 
echo 'were on a single event page';
 
} elseif( tribe_is_venue() ) { // Single Venues
 
echo 'were on a single venue page';
 
} elseif( get_post_type() == 'tribe_organizer' && is_single() ) { // Single Organizers
 
echo 'were on a single organizer page';
 
} else {
 
}

I have tried your code out, but i'm not seeing the desired results. Here is the full contents of the navigation.php that contains all the breadcrumb code. Can you see what might be wrong? Thank you Jonah.

<?php
/**

  • Navigation Functions *
  • Custom menus and breadcrumb path */

/**********************************

  • CUSTOM MENUS **********************************/

/**

  • Register header and footer menu locations */

function risen_register_menus() {

// Register header menu location
register_nav_menu( 'header', _x( 'Header', 'menu location', 'risen' ) );

// Register footer menu location
register_nav_menu( 'footer', _x( 'Footer', 'menu location', 'risen' ) );

}

/**

  • Correct "Custom" menu link URLs from sample XML content to use actual site's home URL
  • This fires after Importer plugin finishes - see hook in functions.php */

function risen_import_correct_menu_urls() {

$home_url = home_url(); // this install
$dev_home_url = 'http://multisite.dev/risen'; // the "home" URL used in XML for Custom menu links

// This WP install is not the dev install
if ( $home_url != $dev_home_url ) {

    // Get menu links that have dev home URL (from XML import)
    $posts = get_posts( array(
        'post_type' => 'nav_menu_item',
        'numberposts' => -1,
        'meta_query' => array(
            array(
                'key'       => '_menu_item_url',
                'value'     => $dev_home_url,
                'compare'   => 'LIKE'
            )
        )
    ) );

    // Loop 'em to change
    foreach( $posts as $post ) {

        // Get URL
        $url = get_post_meta( $post->ID, '_menu_item_url', true );

        // Change it to this install's home URL
        $new_url = str_replace( $dev_home_url, $home_url, $url );
        update_post_meta( $post->ID, '_menu_item_url', esc_url_raw( $new_url ) );

        // Debug
        //echo "\n\n$url\n$new_url\n";
        //print_r( $post );

    }

}

}

/**********************************

  • BREADCRUMB **********************************/

/**

  • Output breadcrumb path */

if ( ! function_exists( 'risen_breadcrumbs' ) ) {

function risen_breadcrumbs() {

    global $post;

    // Enabled in Theme Options
    if ( risen_option( 'breadcrumbs' ) ) {

        $breadcrumbs = array();

        // Page
        if ( is_page() ) {

            // Get page and parents if any
            $breadcrumbs = array_merge( $breadcrumbs, risen_page_breadcrumbs( $post->ID ) );

        }

        // Multimedia (post, category, speaker, tag, date archives)
        else if ( is_singular( 'risen_multimedia' ) || is_tax( 'risen_multimedia_category' ) || is_tax( 'risen_multimedia_speaker' ) || is_tax( 'risen_multimedia_tag' ) || is_post_type_archive( 'risen_multimedia' ) ) {

            // Prepend page (and parents) that use multimedia template
            $multimedia_page_id = risen_get_page_id_by_template( 'tpl-multimedia.php' );
            if ( $multimedia_page_id ) {
                $page_breadcrumbs = risen_page_breadcrumbs( $multimedia_page_id );
                $breadcrumbs = array_merge( $breadcrumbs, $page_breadcrumbs );
            }

            // Multimedia Item
            if ( is_singular() ) {

                // Prepend categories if any
                $taxonomy = 'risen_multimedia_category';
                $terms = get_the_terms( $post->ID, $taxonomy );
                $term = is_array( $terms ) ? current( $terms ) : $terms; // use first cat in list
                if ( ! empty( $term ) ) {
                    $category_breadcrumbs = risen_taxonomy_term_breadcrumbs( $term, $taxonomy );
                    $breadcrumbs = array_merge( $breadcrumbs, $category_breadcrumbs );
                }

                // Current item
                //$breadcrumbs[] = array( get_the_title() );
                $breadcrumbs[] = array(
                    sprintf( _x( 'View %s', 'multimedia breadcrumb', 'risen'), risen_option( 'multimedia_word_singular' ) ),
                    get_permalink()
                ); // post titles are often long, so use short generic term

            }

            // Multimedia Category or Speaker
            // Both are hierarchical taxonomies so work the same
            else if ( is_tax( 'risen_multimedia_category' ) || is_tax( 'risen_multimedia_speaker' ) ) {

                // Get taxonomy and parents if any
                $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
                $breadcrumbs = array_merge( $breadcrumbs, risen_taxonomy_term_breadcrumbs( $term, get_query_var( 'taxonomy' ) ) );

            }

            // Multimedia Tag
            else if ( is_tax( 'risen_multimedia_tag' ) ) {
                $breadcrumbs[] = array(
                    sprintf( _x( 'Tagged %s', 'multimedia breadcrumb', 'risen' ), risen_option( 'multimedia_word_plural' ) ),
                    get_term_link( get_query_var( 'term' ), get_query_var( 'taxonomy' ) )
                );
            }

            // Multimedia Date Archive
            else if ( is_year() || is_month() || is_day() ) {

                // Append date breadcrumbs
                $base_url = get_post_type_archive_link( get_query_var( 'post_type' ) );
                $breadcrumbs = array_merge( $breadcrumbs, risen_date_breadcrumbs( $base_url ) );

            }

        }

        // Gallery (post, category)
        else if ( is_singular( 'risen_gallery' ) || is_tax( 'risen_gallery_category' ) ) {

            // Prepend main gallery page (and parents) chosen in Theme Options
            $gallery_page_id = risen_option( 'gallery_page_id' );
            if ( $gallery_page_id ) {
                $page_breadcrumbs = risen_page_breadcrumbs( $gallery_page_id );
                $breadcrumbs = array_merge( $breadcrumbs, $page_breadcrumbs );
            }

            // Gallery Item
            if ( is_singular() ) {

                // Prepend categories if any
                $taxonomy = 'risen_gallery_category';
                $terms = get_the_terms( $post->ID, $taxonomy );
                $term = is_array( $terms ) ? current( $terms ) : $terms; // use first cat in list
                if ( ! empty( $term ) ) {
                    $category_breadcrumbs = risen_taxonomy_term_breadcrumbs( $term, $taxonomy );
                    $breadcrumbs = array_merge( $breadcrumbs, $category_breadcrumbs );
                }

                // Current item
                //$breadcrumbs[] = array( get_the_title() );
                $gallery_item_type = get_post_meta( $post->ID, '_risen_gallery_type', true );
                $gallery_item_type = 'video' == $gallery_item_type ? _x( 'Video', 'gallery item', 'risen' ) : _x( 'Image', 'gallery item', 'risen' );
                $breadcrumbs[] = array(
                    sprintf( _x( 'View %s', 'gallery breadcrumb', 'risen' ), $gallery_item_type ), // post titles are often long, so use short generic term
                    get_permalink()
                );              
            }

            // Gallery Category
            else if ( is_tax( 'risen_gallery_category' ) ) {

                // Get taxonomy and parents if any
                $term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
                $breadcrumbs = array_merge( $breadcrumbs, risen_taxonomy_term_breadcrumbs( $term, get_query_var( 'taxonomy' ) ) );

            }

        }

        // Events
        else if ( is_singular( 'risen_event' ) ) {

            // Prepend page (and parents) that use multimedia template
            $template = risen_event_parent_page_template( $post ); // Use Upcoming or Past template?
            $events_page_id = risen_get_page_id_by_template( $template );
            if ( $events_page_id ) {
                $page_breadcrumbs = risen_page_breadcrumbs( $events_page_id );
                $breadcrumbs = array_merge( $breadcrumbs, $page_breadcrumbs );
            }

            // Single event
            $breadcrumbs[] = array(
                _x( 'View Event', 'breadcrumb', 'risen' ),
                get_permalink()
            );

        }

        // The Events Calendar Pro
        if( tribe_is_month() && !is_tax() ) { // The Main Calendar Page

            } elseif( tribe_is_month() && is_tax() ) { // Calendar Category Pages

            } elseif( tribe_is_event() && !tribe_is_day() && !is_single() ) { // The Main Events List

            } elseif( tribe_is_event() && is_single() ) { // Single Events

            } elseif( tribe_is_day() ) { // Single Event Days

            } elseif( tribe_is_venue() ) { // Single Venues

            } else {

        }

        // Blog (post, category, tag, search, date archives, author archive)
        else if ( is_singular( 'post' ) || is_category() || is_tag() || is_search() || is_year() || is_month() || is_day() || is_author() || is_post_type_archive( 'post' ) ) {

            // Prepend page (and parents) that use blog template
            $blog_page_id = risen_get_page_id_by_template( 'tpl-blog.php' );
            if ( $blog_page_id ) {
                $page_breadcrumbs = risen_page_breadcrumbs( $blog_page_id );
                $breadcrumbs = array_merge( $breadcrumbs, $page_breadcrumbs );
            }

            // Blog Post
            if ( is_single() ) {

                // Prepend categories if any
                $categories = get_the_category();
                if ( isset( $categories[0] ) ) { // use first cat in list
                    $category_breadcrumbs = risen_taxonomy_term_breadcrumbs( $categories[0], 'category' );
                    $breadcrumbs = array_merge( $breadcrumbs, $category_breadcrumbs );
                }

                // Current item
                //$breadcrumbs[] = array( get_the_title() );
                $breadcrumbs[] = array(
                    _x( 'View Post', 'breadcrumb', 'risen' ), // post titles are often long, so use short generic term
                    get_permalink()
                );

            }

            // Blog Category
            else if ( is_category() ) {

                // Get category and parents if any
                $breadcrumbs = array_merge( $breadcrumbs, risen_taxonomy_term_breadcrumbs( get_query_var( 'cat' ), 'category' ) );

            }

            // Blog Tag
            else if ( is_tag() ) {
                $breadcrumbs[] = array(
                    _x( 'Tagged Posts', 'breadcrumb', 'risen' ),        
                    get_tag_link( get_query_var( 'tag_id' ) )
                );
            }

            // Blog Search
            else if ( is_search() ) {
                $breadcrumbs[] = array(
                    _x( 'Search Results', 'breadcrumb', 'risen' ),
                    get_search_link()
                );
            }

            // Blog Date Archive
            else if ( is_year() || is_month() || is_day() ) {

                // Append date breadcrumbs
                $breadcrumbs = array_merge( $breadcrumbs, risen_date_breadcrumbs() );

            }

            // Blog Author
            else if ( is_author() ) {
                $breadcrumbs[] = array(
                    _x( 'Author Archive', 'breadcrumb', 'risen' ),
                    get_author_posts_url( get_query_var( 'author' ) )
                );
            }

        }

        // File not found page
        else if ( is_404() ) {              
            $breadcrumbs[] = array(
                __( 'Not Found', 'risen' ),
                risen_current_url()
            );
        }

        // Output breadcrumbs
        if ( ! empty( $breadcrumbs ) ) {

            // Append Home to front
            $breadcrumbs = array_merge( array( array( _x( 'Home', 'breadcrumbs', 'risen' ) , home_url() ) ), $breadcrumbs );

            // Output
            $i = 0;
            $count = count( $breadcrumbs );
            echo '<div class="breadcrumbs">';
            foreach( $breadcrumbs as $breadcrumb ) {

                $i++;

                $breadcrumb = (array) $breadcrumb;

                // Separator
                if ( $i > 1 ) {
                    echo _x( ' > ', 'breadcrumb separator', 'risen' );
                }

                // If no link given (just in case)
                if ( empty( $breadcrumb[1] ) ) { // add  || $i == $count if don't wany any last item linked, but it's more helpful and reable with it linked
                    echo '<span>' . esc_html( $breadcrumb[0] ) . '</span>';
                }

                // Linked
                else {
                    echo '<a href="../risen/includes/' . esc_url( $breadcrumb[1] ) . '">' . esc_html( $breadcrumb[0] ) . '</a>';
                }

            }
            echo '</div>';

        }

    }

}

}

/**

  • Get Page Breadcrumbs */

if ( ! function_exists( 'risen_page_breadcrumbs' ) ) {

function risen_page_breadcrumbs( $page_id ) {

    $page_breadcrumbs = array();

    if( ! empty( $page_id ) ) {

        $page = get_page( $page_id );

        // Parent pages?
        if ( ! empty( $page->post_parent ) ) {

            $parent_page_breadcrumbs = array();

            // Traverse through parent pages
            $parent_page_id = $page->post_parent;
            while ( $parent_page_id ) { // keep moving down levels until there are no more parent pages

                $parent_page = get_page( $parent_page_id );
                $parent_page_id  = $parent_page->post_parent; // if this parent has a parent, while loop will continue

                $parent_page_breadcrumbs[] = array(
                    get_the_title( $parent_page->ID ),
                    get_permalink( $parent_page->ID )
                );      

            }

            // Reverse parent page array and marge into main breadcrumbs
            $page_breadcrumbs = array_merge( $page_breadcrumbs, array_reverse( $parent_page_breadcrumbs ) );

        }

        // Current page
        $page_breadcrumbs[] = array(
            get_the_title( $page_id ),
            get_permalink( $page_id )
        );

    }

    $page_breadcrumbs = apply_filters( 'risen_breadcrumbs', $page_breadcrumbs );

    return $page_breadcrumbs;

}

}

/**

  • Get Taxonomy Term Breadcrumbs *
  • Handy for post categories, sermon categories, speakers, gallery categories, etc.
  • $term can be object or ID */

if ( ! function_exists( 'risen_taxonomy_term_breadcrumbs' ) ) {

function risen_taxonomy_term_breadcrumbs( $term, $taxonomy ) {

    $term_breadcrumbs = array();

    if ( ! empty( $term ) ) {

        $term_obj = get_term( $term, $taxonomy ); // in case $term is ID, not already object

        // Parent terms?
        if ( ! empty( $term_obj->parent ) ) {

            $parent_term_breadcrumbs = array();

            // Traverse through parent terms
            $parent_term_id = $term_obj->parent;
            while ( $parent_term_id ) { // keep moving down levels until there are no more parent terms

                $parent_term = get_term( $parent_term_id, $taxonomy );
                $parent_term_id  = $parent_term->parent; // if this parent has a parent, while loop will continue

                $parent_term_breadcrumbs[] = array(
                    $parent_term->name,
                    get_term_link( $parent_term, $taxonomy )
                );      

            }

            // Reverse parent term array and marge into main breadcrumbs
            $term_breadcrumbs = array_merge( $term_breadcrumbs, array_reverse( $parent_term_breadcrumbs ) );

        }

        // Current term
        $term_breadcrumbs[] = array(
            $term_obj->name,
            get_term_link( $term_obj, $taxonomy )
        );

    }

    $term_breadcrumbs = apply_filters( 'risen_taxonomy_term_breadcrumbs', $term_breadcrumbs );

    return $term_breadcrumbs;

}

}

/**

  • Get Date Breadcrumbs */

if ( ! function_exists( 'risen_date_breadcrumbs' ) ) {

function risen_date_breadcrumbs( $base_url = false ) {

    $date_breadcrumbs = array();

    // Year
    $year = get_query_var( 'year' );
    if ( ! empty( $year ) ) {

        $dateformatstring = _x( 'Y', 'breadcrumb year format', 'risen' );

        if ( ! empty( $base_url ) ) { // if base URL given, use it (such as custom post type date archive)
            $date_url = trailingslashit( $base_url ) . trailingslashit( $year );
        } else {
            $date_url = get_year_link( $year );
        }

        $date_breadcrumbs[] = array(
            date_i18n( $dateformatstring, mktime( 0, 0, 0, 1, 1, $year ) ),
            $date_url
        );

        // Month
        $month = get_query_var( 'monthnum' );
        if ( ! empty( $month ) ) {

            $dateformatstring = _x( 'F', 'breadcrumb month format', 'risen' );

            if ( ! empty( $base_url ) ) { // if base URL given, use it (such as custom post type date archive)
                $date_url .= trailingslashit( $month );
            } else {
                $date_url = get_month_link( $year, $month );
            }

            $date_breadcrumbs[] = array(
                date_i18n( $dateformatstring, mktime( 0, 0, 0, $month, 1, $year ) ),
                $date_url
            );

            // Day
            $day = get_query_var( 'day' );
            if ( ! empty( $day ) ) {

                $dateformatstring = _x( 'jS', 'breadcrumb day format', 'risen' );

                if ( ! empty( $base_url ) ) { // if base URL given, use it (such as custom post type date archive)
                    $date_url .= trailingslashit( $day );
                } else {
                    $date_url = get_day_link( $year, $month, $day );
                }

                $date_breadcrumbs[] = array(
                    date_i18n( $dateformatstring, mktime( 0, 0, 0, $month, $day, $year ) ),
                    $date_url
                );

            }

        }                   

    }

    $date_breadcrumbs = apply_filters( 'risen_date_breadcrumbs', $date_breadcrumbs );

    return $date_breadcrumbs;

}

}

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.