Well, I'm more stumped than usual (note: I'm perpetually stumped by PHP). So... I now have this...
function single_post_nav() {
global $post;
if ( is_single() && 'forum' != get_post_type() && !in_category(array('54', '55', '56', '57', '58')) && !is_category(array('54', '55', '56', '57', '58')) ) { ?>
<div id="nav-below" class="navigation">
<div class="nav-previous"><?php previous_post_link_plus( array('order_by' => 'menu_order', 'order_2nd' => 'post_title', 'in_same_cat' => true, 'max_length' => 50 ) ) ?></div>
<div class="nav-next"><?php next_post_link_plus( array('order_by' => 'menu_order', 'order_2nd' => 'post_title', 'in_same_cat' => true, 'max_length' => 50 ) ) ?></div>
</div>
<p class="commentsSkip"><a href="#respond">Read the comments on this video »</a></p>
<?php
echo '<h2>More from this channel:</h2>';
next_post_link_plus( array('order_by' => 'menu_order', 'order_2nd' => 'post_title', 'format' => '%link', 'in_same_cat' => true, 'thumb' => true, 'num_results' => 9) );
$cat = get_the_category();
$cat_link = get_category_link( $cat[0]->cat_ID );
echo '<p><a class="watchAll" href="' . $cat_link . '" title="View all videos in this channel">View all videos in this channel</a></p>';
}
elseif ( is_single() && 'forum' != get_post_type()) {
echo '<div>';
}
}
add_action ('thematic_belowpost','single_post_nav');
Which means that everything apart from the Forum section is working as it should.
However, the bbPress forums are STILL loading in this chunk of HTML, which I don't quite understand? Is it because I'm using 'global $post' incorrectly? Or is it due to the is_single() over-riding the 'forum' != get_post_type() part somehow?
I've noticed that if I use: if ( !is_single() && 'forum' != get_post_type())
then the forum displays as it should (but obviously the rest of the site falls apart...)
Any other thoughts?