Skip to:
Content
Pages
Categories
Search
Top
Bottom

Group types, bbpress, buddypress and a Notice Use of undefined constant


  • pandraka
    Participant

    @pandraka

    WordPress 4.8
    PHP 7
    bbpress 2.5.12
    buddypress 2.8.2

    I’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

Viewing 3 replies - 1 through 3 (of 3 total)

  • Robin W
    Moderator

    @robin-w

    your filter reads

    add_filter( 'bbp_get_breadcrumb',mod_bbp_get_breadcrumb, 98, 2);

    it should read

    add_filter( 'bbp_get_breadcrumb','mod_bbp_get_breadcrumb', 98, 2);

    you need single quotes around the 2nd function


    pandraka
    Participant

    @pandraka

    OMG – Thank you. I’ve been looking at this for a bit and never saw the syntax error. It was driving me crazy.


    Robin W
    Moderator

    @robin-w

    no problem – glad you’re fixed !!

Viewing 3 replies - 1 through 3 (of 3 total)
  • You must be logged in to reply to this topic.
Skip to toolbar