コード例 #1
0
ファイル: query.php プロジェクト: justintadlock/message-board
/**
 * 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;
    }
}
コード例 #2
0
 /**
  * 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);
 }
コード例 #3
0
/**
 * 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;
}