Example #1
0
function mb_get_board_home_url()
{
    if ('forums' === mb_get_show_on_front()) {
        $url = get_post_type_archive_link(mb_get_forum_post_type());
    } elseif ('topics' === mb_get_show_on_front()) {
        $url = get_post_type_archive_link(mb_get_topic_post_type());
    } else {
        $url = home_url(mb_get_root_slug());
    }
    return apply_filters('mb_get_board_home_url', $url);
}
Example #2
0
/**
 * Checks if viewing the forum front page.
 *
 * @since  1.0.0
 * @access public
 * @return bool
 */
function mb_is_forum_front()
{
    $is_front = false;
    $on_front = mb_get_show_on_front();
    if ('forums' === $on_front && is_post_type_archive(mb_get_forum_post_type())) {
        $is_front = true;
    } elseif ('topics' === $on_front && is_post_type_archive(mb_get_topic_post_type())) {
        $is_front = true;
    }
    return apply_filters('mb_is_forum_front', $is_front);
}
 /**
  * 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);
 }
/**
 * Registers post types needed by the plugin.
 *
 * @since  1.0.0
 * @access public
 * @return void
 */
function mb_register_post_types()
{
    /* Get admin menu page. */
    $menu_page = mb_get_admin_menu_page();
    /* Get post type names. */
    $forum_type = mb_get_forum_post_type();
    $topic_type = mb_get_topic_post_type();
    $reply_type = mb_get_reply_post_type();
    /* Set up the arguments for the "forum" post type. */
    $forum_args = array('description' => '', 'public' => true, 'publicly_queryable' => true, 'exclude_from_search' => true, 'show_in_nav_menus' => true, 'show_ui' => true, 'show_in_menu' => "edit.php?post_type={$forum_type}" === $menu_page ? true : false, 'show_in_admin_bar' => true, 'menu_position' => null, 'menu_icon' => 'dashicons-format-chat', 'can_export' => true, 'delete_with_user' => false, 'hierarchical' => true, 'has_archive' => 'forums' === mb_get_show_on_front() ? mb_get_root_slug() : mb_get_forum_slug(), 'query_var' => $forum_type, 'capability_type' => 'forum', 'map_meta_cap' => true, 'capabilities' => mb_get_forum_capabilities(), 'rewrite' => array('slug' => mb_get_forum_slug(), 'with_front' => false, 'pages' => false, 'feeds' => true, 'ep_mask' => EP_PERMALINK), 'supports' => array('title', 'editor', 'thumbnail'), 'labels' => array('name' => __('Forums', 'message-board'), 'singular_name' => __('Forum', 'message-board'), 'menu_name' => __('Message Board', 'message-board'), 'name_admin_bar' => __('Forum', 'message-board'), 'all_items' => __('Forums', 'message-board'), 'add_new' => __('Add Forum', 'message-board'), 'add_new_item' => __('Add New Forum', 'message-board'), 'edit_item' => __('Edit Forum', 'message-board'), 'new_item' => __('New Forum', 'message-board'), 'view_item' => __('View Forum', 'message-board'), 'search_items' => __('Search Forums', 'message-board'), 'not_found' => __('No forums found', 'message-board'), 'not_found_in_trash' => __('No forums found in trash', 'message-board'), 'parent_item_colon' => __('Parent Forum:', 'message-board'), 'archive_title' => __('Forums', 'message-board'), 'mb_dashboard_count' => _n_noop('%s Forum', '%s Forums', 'message-board'), 'mb_form_title' => __('Forum Title:', 'message-board'), 'mb_form_type' => __('Forum Type:', 'message-board'), 'mb_form_status' => __('Status:', 'message-board'), 'mb_form_order' => __('Order:', 'message-board'), 'mb_form_content' => __('Description:', 'message-board'), 'mb_form_edit_item' => __('Edit Forum: %s', 'message-board'), 'mb_form_title_placeholder' => __('Enter forum title', 'message-board'), 'mb_form_content_placeholder' => __('Enter forum description&hellip;', 'message-board'), 'mb_form_subscribe' => __('Notify me of topics and replies via email', 'message-board')));
    /* Set up the arguments for the "topic" post type. */
    $topic_args = array('description' => '', 'public' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'show_in_nav_menus' => false, 'show_ui' => true, 'show_in_menu' => "edit.php?post_type={$topic_type}" === $menu_page ? true : $menu_page, 'show_in_admin_bar' => true, 'menu_position' => null, 'menu_icon' => 'dashicons-format-chat', 'can_export' => true, 'delete_with_user' => false, 'hierarchical' => false, 'has_archive' => 'topics' === mb_get_show_on_front() ? mb_get_root_slug() : mb_get_topic_slug(), 'query_var' => mb_get_topic_post_type(), 'capability_type' => $topic_type, 'map_meta_cap' => true, 'capabilities' => mb_get_topic_capabilities(), 'rewrite' => array('slug' => mb_get_topic_slug(), 'with_front' => false, 'pages' => false, 'feeds' => true, 'ep_mask' => EP_PERMALINK), 'supports' => array('title', 'editor'), 'labels' => array('name' => __('Topics', 'message-board'), 'singular_name' => __('Topic', 'message-board'), 'menu_name' => __('Message Board', 'message-board'), 'name_admin_bar' => __('Topic', 'message-board'), 'all_items' => __('Topics', 'message-board'), 'add_new' => __('Add Topic', 'message-board'), 'add_new_item' => __('Add New Topic', 'message-board'), 'edit_item' => __('Edit Topic', 'message-board'), 'new_item' => __('New Topic', 'message-board'), 'view_item' => __('View Topic', 'message-board'), 'search_items' => __('Search Topics', 'message-board'), 'not_found' => __('No topics found', 'message-board'), 'not_found_in_trash' => __('No topics found in trash', 'message-board'), 'parent_item_colon' => __('Forum:', 'message-board'), 'archive_title' => __('Topics', 'message-board'), 'mb_dashboard_count' => _n_noop('%s Topic', '%s Topics', 'message-board'), 'mb_form_title' => __('Topic Title:', 'message-board'), 'mb_form_type' => __('Topic Type:', 'message-board'), 'mb_form_status' => __('Status:', 'message-board'), 'mb_form_content' => __('Message:', 'message-board'), 'mb_form_edit_item' => __('Edit Topic: %s', 'message-board'), 'mb_form_title_placeholder' => __('Enter topic title', 'message-board'), 'mb_form_content_placeholder' => __('Enter topic message&hellip;', 'message-board'), 'mb_form_subscribe' => __('Notify me of follow-up posts via email', 'message-board')));
    /* Set up the arguments for the "reply" post type. */
    $reply_args = array('description' => '', 'public' => true, 'publicly_queryable' => true, 'exclude_from_search' => false, 'show_in_nav_menus' => false, 'show_ui' => true, 'show_in_menu' => "edit.php?post_type={$reply_type}" === $menu_page ? true : $menu_page, 'show_in_admin_bar' => false, 'menu_position' => null, 'menu_icon' => 'dashicons-format-chat', 'can_export' => true, 'delete_with_user' => false, 'hierarchical' => false, 'has_archive' => mb_get_reply_slug(), 'query_var' => $reply_type, 'capability_type' => 'forum_reply', 'map_meta_cap' => true, 'capabilities' => mb_get_reply_capabilities(), 'rewrite' => array('slug' => mb_get_reply_slug(), 'with_front' => false, 'pages' => false, 'feeds' => false, 'ep_mask' => EP_PERMALINK), 'supports' => array('editor'), 'labels' => array('name' => __('Replies', 'message-board'), 'singular_name' => __('Reply', 'message-board'), 'menu_name' => __('Message Board', 'message-board'), 'name_admin_bar' => __('Reply', 'message-board'), 'all_items' => __('Replies', 'message-board'), 'add_new' => __('Add Reply', 'message-board'), 'add_new_item' => __('Leave A Reply', 'message-board'), 'edit_item' => __('Edit Reply', 'message-board'), 'new_item' => __('New Reply', 'message-board'), 'view_item' => __('View Reply', 'message-board'), 'search_items' => __('Search Replies', 'message-board'), 'not_found' => __('No replies found', 'message-board'), 'not_found_in_trash' => __('No replies found in trash', 'message-board'), 'parent_item_colon' => __('Topic:', 'message-board'), 'archive_title' => __('Replies', 'message-board'), 'mb_dashboard_count' => _n_noop('%s Reply', '%s Replies', 'message-board'), 'mb_form_content' => __('Message:', 'message-board'), 'mb_form_edit_item' => __('Edit Reply: %s', 'message-board'), 'mb_form_content_placeholder' => __('Enter reply message&hellip;', 'message-board'), 'mb_form_subscribe' => __('Notify me of follow-up posts via email', 'message-board')));
    /* Register post types. */
    register_post_type($forum_type, apply_filters('mb_forum_post_type_args', $forum_args));
    register_post_type($topic_type, apply_filters('mb_topic_post_type_args', $topic_args));
    register_post_type($reply_type, apply_filters('mb_reply_post_type_args', $reply_args));
}