Group types, bbpress, buddypress and a Notice Use of undefined constant
-
WordPress 4.8
PHP 7
bbpress 2.5.12
buddypress 2.8.2I’m using group types on my bbpress/buddypress site. I’ve had to get creative when it comes to breadcrumbs. There was one minor changes to the bbp_get_breadcrumb function that I had to make to make the breadcrumbs work. I copied the function into my functions.php and added a filter. I’m getting an error/notice:
Notice: Use of undefined constant mod_bbp_get_breadcrumb – assumed ‘mod_bbp_get_breadcrumb’The function is doing exactly what I want it to do. but this error is showing up. The functions is originally located in bbpress/includes/common/template.php file
here’s the code:
<?php
function mod_bbp_get_breadcrumb( $args = array() ) {// Turn off breadcrumbs
if ( apply_filters( ‘bbp_no_breadcrumb’, is_front_page() ) )
return;// Define variables
$front_id = $root_id = 0;
$ancestors = $crumbs = $tag_data = array();
$pre_root_text = $pre_front_text = $pre_current_text = ”;
$pre_include_root = $pre_include_home = $pre_include_current = true;/** Home Text *********************************************************/
// No custom home text
if ( empty( $args[‘home_text’] ) ) {$front_id = get_option( ‘page_on_front’ );
// Set home text to page title
if ( !empty( $front_id ) ) {
$pre_front_text = get_the_title( $front_id );// Default to ‘Home’
} else {
$pre_front_text = __( ‘Home’, ‘bbpress’ );
}
}/** Root Text *********************************************************/
// No custom root text
if ( empty( $args[‘root_text’] ) ) {
$page = bbp_get_page_by_path( bbp_get_root_slug() );
if ( !empty( $page ) ) {
$root_id = $page->ID;
}
$pre_root_text = bbp_get_forum_archive_title();
}/** Includes **********************************************************/
// Root slug is also the front page
if ( !empty( $front_id ) && ( $front_id === $root_id ) ) {
$pre_include_root = false;
}// Don’t show root if viewing forum archive
if ( bbp_is_forum_archive() ) {
$pre_include_root = false;
}// Don’t show root if viewing page in place of forum archive
if ( !empty( $root_id ) && ( ( is_single() || is_page() ) && ( $root_id === get_the_ID() ) ) ) {
$pre_include_root = false;
}/** Current Text ******************************************************/
// Search page
if ( bbp_is_search() ) {
$pre_current_text = bbp_get_search_title();// Forum archive
} elseif ( bbp_is_forum_archive() ) {
$pre_current_text = bbp_get_forum_archive_title();// Topic archive
} elseif ( bbp_is_topic_archive() ) {
$pre_current_text = bbp_get_topic_archive_title();// View
} elseif ( bbp_is_single_view() ) {
$pre_current_text = bbp_get_view_title();// Single Forum
} elseif ( bbp_is_single_forum() ) {
$pre_current_text = bbp_get_forum_title();// Single Topic
} elseif ( bbp_is_single_topic() ) {
$pre_current_text = bbp_get_topic_title();// Single Topic
} elseif ( bbp_is_single_reply() ) {
$pre_current_text = bbp_get_reply_title();// Topic Tag (or theme compat topic tag)
} elseif ( bbp_is_topic_tag() || ( get_query_var( ‘bbp_topic_tag’ ) && !bbp_is_topic_tag_edit() ) ) {// Always include the tag name
$tag_data[] = bbp_get_topic_tag_name();// If capable, include a link to edit the tag
if ( current_user_can( ‘manage_topic_tags’ ) ) {
$tag_data[] = ‘‘ . esc_html__( ‘(Edit)’, ‘bbpress’ ) . ‘‘;
}// Implode the results of the tag data
$pre_current_text = sprintf( __( ‘Topic Tag: %s’, ‘bbpress’ ), implode( ‘ ‘, $tag_data ) );// Edit Topic Tag
} elseif ( bbp_is_topic_tag_edit() ) {
$pre_current_text = __( ‘Edit’, ‘bbpress’ );// Single
} else {
$pre_current_text = get_the_title();
}/** Parse Args ********************************************************/
// Parse args
$r = bbp_parse_args( $args, array(// HTML
‘before’ => ‘<div class=”bbp-breadcrumb”><p>’,
‘after’ => ‘</p></div>’,// Separator
‘sep’ => is_rtl() ? __( ‘‹’, ‘bbpress’ ) : __( ‘›’, ‘bbpress’ ),
‘pad_sep’ => 1,
‘sep_before’ => ‘<span class=”bbp-breadcrumb-sep”>’,
‘sep_after’ => ‘</span>’,// Crumbs
‘crumb_before’ => ”,
‘crumb_after’ => ”,// Home
‘include_home’ => $pre_include_home,
‘home_text’ => $pre_front_text,// Forum root
‘include_root’ => $pre_include_root,
‘root_text’ => $pre_root_text,// Current
‘include_current’ => $pre_include_current,
‘current_text’ => $pre_current_text,
‘current_before’ => ‘<span class=”bbp-breadcrumb-current”>’,
‘current_after’ => ‘</span>’,
), ‘get_breadcrumb’ );/** Ancestors *********************************************************/
// Get post ancestors
if ( is_singular() || bbp_is_forum_edit() || bbp_is_topic_edit() || bbp_is_reply_edit() ) {
$ancestors = array_reverse( (array) get_post_ancestors( get_the_ID() ) );
}// Do we want to include a link to home?
if ( !empty( $r[‘include_home’] ) || empty( $r[‘home_text’] ) ) {
$crumbs[] = ‘‘ . $r[‘home_text’] . ‘‘;
}// Do we want to include a link to the forum root?
if ( !empty( $r[‘include_root’] ) || empty( $r[‘root_text’] ) ) {// Page exists at root slug path, so use its permalink
$page = bbp_get_page_by_path( bbp_get_root_slug() );
if ( !empty( $page ) ) {
$root_url = get_permalink( $page->ID );// Use the root slug
} else {
$root_url = get_post_type_archive_link( bbp_get_forum_post_type() );
}// Add the breadcrumb
$crumbs[] = ‘‘ . $r[‘root_text’] . ‘‘;
}// Ancestors exist
if ( !empty( $ancestors ) ) {// Loop through parents
foreach ( (array) $ancestors as $parent_id ) {// Parents
$parent = get_post( $parent_id );// Skip parent if empty or error
if ( empty( $parent ) || is_wp_error( $parent ) )
continue;// Switch through post_type to ensure correct filters are applied
switch ( $parent->post_type ) {// Forum
case bbp_get_forum_post_type() :
// PAA – modified
//echo ‘forum title’. bbp_get_forum_title( $parent->ID) ;
$test_title = bbp_get_forum_title( $parent->ID) ;
if ($test_title == ‘Group Forums’){
$base_url = bp_get_root_domain();
$crumbs[] = ‘Groups‘;}
else
{$crumbs[] = ‘ID ) ) . ‘” class=”bbp-breadcrumb-forum”>’ . bbp_get_forum_title( $parent->ID ) . ‘‘; };break;
// Topic
case bbp_get_topic_post_type() :
$crumbs[] = ‘ID ) ) . ‘” class=”bbp-breadcrumb-topic”>’ . bbp_get_topic_title( $parent->ID ) . ‘‘;
break;// Reply (Note: not in most themes)
case bbp_get_reply_post_type() :
$crumbs[] = ‘ID ) ) . ‘” class=”bbp-breadcrumb-reply”>’ . bbp_get_reply_title( $parent->ID ) . ‘‘;
break;// WordPress Post/Page/Other
default :
$crumbs[] = ‘ID ) ) . ‘” class=”bbp-breadcrumb-item”>’ . get_the_title( $parent->ID ) . ‘‘;
break;
}
}// Edit topic tag
} elseif ( bbp_is_topic_tag_edit() ) {
$crumbs[] = ‘‘ . sprintf( __( ‘Topic Tag: %s’, ‘bbpress’ ), bbp_get_topic_tag_name() ) . ‘‘;// Search
} elseif ( bbp_is_search() && bbp_get_search_terms() ) {
$crumbs[] = ‘‘ . esc_html__( ‘Search’, ‘bbpress’ ) . ‘‘;
}/** Current ***********************************************************/
// Add current page to breadcrumb
if ( !empty( $r[‘include_current’] ) || empty( $r[‘current_text’] ) ) {
$crumbs[] = $r[‘current_before’] . $r[‘current_text’] . $r[‘current_after’];
}/** Separator *********************************************************/
// Wrap the separator in before/after before padding and filter
if ( ! empty( $r[‘sep’] ) ) {
$sep = $r[‘sep_before’] . $r[‘sep’] . $r[‘sep_after’];
}// Pad the separator
if ( !empty( $r[‘pad_sep’] ) ) {
if ( function_exists( ‘mb_strlen’ ) ) {
$sep = str_pad( $sep, mb_strlen( $sep ) + ( (int) $r[‘pad_sep’] * 2 ), ‘ ‘, STR_PAD_BOTH );
} else {
$sep = str_pad( $sep, strlen( $sep ) + ( (int) $r[‘pad_sep’] * 2 ), ‘ ‘, STR_PAD_BOTH );
}
}/** Finish Up *********************************************************/
// Filter the separator and breadcrumb
$sep = apply_filters( ‘bbp_breadcrumb_separator’, $sep );
$crumbs = apply_filters( ‘bbp_breadcrumbs’, $crumbs );// Build the trail
$trail = !empty( $crumbs ) ? ( $r[‘before’] . $r[‘crumb_before’] . implode( $sep . $r[‘crumb_after’] . $r[‘crumb_before’] , $crumbs ) . $r[‘crumb_after’] . $r[‘after’] ) : ”;return apply_filters( ‘mod_bbp_get_breadcrumb’, $trail, $crumbs, $r );
}add_filter( ‘bbp_get_breadcrumb’,mod_bbp_get_breadcrumb, 98, 2);
?>At this point I’m not sure what else to do or if it’s ok to ignore the warning
- You must be logged in to reply to this topic.