/** * Sets `$query->is_404` to `false` right after the query has been parsed when viewing the forum front * page, which WP sets to 404 by default. * * @since 1.0.0 * @access public * @param object $query * @return void */ function mb_parse_query($query) { if (mb_is_search_results()) { $query->is_404 = false; $query->is_front_page = false; $query->is_home = false; $query->is_post_type_archive = false; } elseif (mb_is_forum_front()) { $query->is_404 = false; $query->is_home = false; } }
/** * Adds the board home link to `$items` array. * * @since 1.0.0 * @access public * @return void */ public function mb_do_board_home_link() { if (mb_is_forum_front()) { return; } $show_on_front = mb_get_show_on_front(); if ('forums' === $show_on_front) { $object = get_post_type_object(mb_get_forum_post_type()); $label = mb_get_forum_label('archive_title'); } elseif ('topics' === $show_on_front) { $object = get_post_type_object(mb_get_topic_post_type()); $label = mb_get_topic_label('archive_title'); } $this->items[] = sprintf('<a href="%s">%s</a>', esc_url(get_post_type_archive_link($object->name)), $label); }
/** * Filter on `body_class` to add custom classes for the plugin's pages on the front end. * * @todo Remove `bbpress` class. * @todo Decide on class naming system. * * @since 1.0.0 * @access public * @param array $classes * @return array */ function mb_body_class($classes) { global $wp; if (mb_is_message_board()) { $classes[] = 'mb'; $classes[] = 'bbpress'; // temporary class for compat $forum_type = mb_get_forum_post_type(); $topic_type = mb_get_topic_post_type(); $reply_type = mb_get_reply_post_type(); $_classes = $classes; $remove = array("single-{$forum_type}", "single-{$topic_type}", "single-{$reply_type}", "singular-{$forum_type}", "singular-{$topic_type}", "singular-{$reply_type}", "archive-{$forum_type}", "archive-{$topic_type}", "archive-{$reply_type}"); foreach ($_classes as $class_key => $class_value) { if (in_array($class_value, $remove)) { unset($classes[$class_key]); } } if (mb_is_forum_front()) { $classes[] = 'forum-front'; } elseif (mb_is_single_forum()) { $classes[] = 'single-forum'; } elseif (mb_is_single_topic()) { $classes[] = 'single-topic'; } elseif (mb_is_single_reply()) { $classes[] = 'single-reply'; } elseif (mb_is_single_role()) { $classes[] = 'single-role'; } elseif (mb_is_forum_archive()) { $classes[] = 'archive-forum'; } elseif (mb_is_topic_archive()) { $classes[] = 'archive-topic'; } elseif (mb_is_reply_archive()) { $classes[] = 'archive-reply'; } elseif (mb_is_role_archive()) { $classes[] = 'archive-role'; } elseif (mb_is_user_archive()) { $classes[] = 'archive-user'; } } return $classes; }