Welp.. I figured it out. Here is the code that I placed in my theme’s function.php file so that all avatars are rendered correctly:
function jb_get_bp_user_avatar($avatar, $id_or_email, $size, $default, $alt)
{
if (is_numeric($id_or_email)) {
$id = (int) $id_or_email;
$user = get_user_by('id', $id);
} elseif (is_object($id_or_email)) {
if (!empty($id_or_email->user_id)) {
$id = (int) $id_or_email->user_id;
$user = get_user_by('id', $id);
}
} else {
$user = get_user_by('email', $id_or_email);
}
if ($user && is_object($user)) {
$avatar = bp_core_fetch_avatar(array('item_id' => $user->ID));
}
return $avatar;
}
add_filter('get_avatar', 'jb_get_bp_user_avatar', 10000, 5);
Yeah, but in forums like phpBB, if you close a topic you are locking the topic. This is indicated to the user by a icon. I added some styling which I had gleaned from the internet:
#bbpress-forums .status-closed > li.bbp-topic-title > a.bbp-topic-permalink:before {
content: "[Locked]";
text-shadow: 1px 1px 0 #ffffff;
color: #ff0000;
margin-right: 5px;
font-size: 16pt !important;
}
This gives me a lock symbol but the look and feel of this symbol is not as nice as the paper clip which is visible for topics with attachments (using the GD Attachments plugin).
then yes the code I sent is fine and works and is enough !!
not quite sure what you are trying to achieve – where are you putting this code ?
I found a way to put it in a plugin 🙂
I Thought I would have to hook into ‘plugins_loaded’ like so:
add_action( 'plugins_loaded', 'bbpress_overwrite' );
function bbpress_overwrite() {
add_filter ('bbp_before_has_search_results_parse_args', 'rew_amend_search') ;
}
function rew_amend_search ($args) {
$args['post_type'] = bbp_get_topic_post_type() ;
return $args ;
}
But for some reason this was enough: ?
add_filter ('bbp_before_has_search_results_parse_args', 'rew_amend_search') ;
function rew_amend_search ($args) {
$args['post_type'] = bbp_get_topic_post_type() ;
return $args ;
}
ok, a better filter might be – try adding this to your functions file
add_filter ('bbp_before_has_search_results_parse_args', 'rew_amend_search') ;
function rew_amend_search ($args) {
$args['post_type'] = bbp_get_topic_post_type() ;
return $args ;
}
I put this:
add_filter ('bbp_before_get_search_terms_parse_args', 'pluus_amend_search') ;
function pluus_amend_search ($args) {
$args['post_type'] = bbp_get_topic_post_type() ;
return $args ;
}
in my wp-content/themes/<ThemeName>/functions.php
But Forum names (“bbp_get_forum_post_type()”) are still included in the search results on the frontend.
Only editing “plugins/bbpress/includes/search/template.php” works 🙂
to get rid of that bit, put this in your custom css part fo your theme
div.bbp-template-notice.info {
border : none !important ;
display: none;
}
you might also want
.bbp-pagination {
display: none;
}
It is not being maintained, but I presume it still works?
Wordpress removes plugins that are not maintained, but most continue to work and are based on stable code.
or is this one now not working ?
Is it possible to download or install the same or similar code as this bbpress support form layout has? I like the layout, and would like to incorporate it on my site. Not sure if this is a possibility? Thanks.
For the record.
I found it but no idea at all where it came from.
It was a style="display:none;" CSS inline declaration inside the generated code.
Generated by what ? Don’t know.
Anyway, I had to force the display with a display:inline-block; and !important tag to bypass it.
**Resolved**
Sorted it. I added this second style:
#bbpress-forums li.bbp-header div {
background: #7A7A78 !important;
border: none;
}
I have this styling:
#bbpress-forums div.bbp-reply-content {
border-left: solid 1px black;
background: whitesmoke !important;
padding-left: 5px;
}
#bbpress-forums div.bbp-reply-author {
background: whitesmoke !important;
}
#bbpress-forums div.bbp-reply-content li {
color: #000 !important;
}
#bbpress-forums div.bbp-reply-content a {
color: blue !important;
}
#bbpress-forums div.bbp-reply-content a:hover {
text-decoration: underline;
}
The problem is that it applies it to the very first row with the headings and I don’t want it to. Ideally I want to set the background of just the replies themselves to whitesmoke.
I am using bbpress in conjunction with buddypress and I noticed that the forums have different avatars for users than their profile avatar. Is there a way to use the avatars from buddypress and not from bbpress?
I found this topic and its exactly what I’m referring too, but it was never marked as resolved and the answer was only for replies. The code snippet in this post works for me, but I need it to go further and apply to all avatars. I tried adding a filter to ‘bbp_get_current_user_avatar’ but I can’t get it to work.
Wordpress, buddypress, and bbpress are all up-to-date – I also have the Youzer plugin installed
Thanks in advance!
I hope you’re still around but I’m trying to accomplish the same goal. Your code snippet works for the replies, as you said, but I’m still trying to use the bp avatars for ALL avatars – like you. I am just curious how you handled that! Thanks!
hmmm… quite a puzzle
so you could try putting your customised file here
wp-content/languages/plugins/bbpress-fr_FR.mo
plugins load code from only two places, but no idea which loads first, but looks like that location loads last, so it might work. but again might be overwritten by WordPress updates
depends on how you define complicated – solutions are frequently only a few lines of code, but getting there takes the time 🙂
you need to pick up the forum id
so
$forum_id = bbp_get_forum_id();
if (( $forum_id == 123) or ( $forum_id == 456)){
etc…
and then you would add the
Custom action hook to add in the template file where the div shall be displayed:
<?php do_action( 'different_div' ); ?>
in the appropriate forum template
Hi, I’m so sorry for not responding I thought the thread was closed but yes now it is using the shortcode.
Hi Robin. Yes, you have a good point. My functions.php file is filling up with these and it’s making no difference on load times. TBH I’m not sure how I would edit the above function to pull the correct forum ID as this one seems to deal with topic ID instead. Does it treat topic ID and forum ID as the same? As in, can I just change the ID number within this part:
if (( $topic_id == 123)
Exactly I think this code:
function my_custom_display_topic_index_query () {
global $_GET;
if($_GET[‘myOrderBy’])$myOrderBy=$_GET[‘myOrderBy’];else $myOrderBy=’last_edited’;
if($_GET[‘myOrder’])$myOrder=$_GET[‘myOrder’];else $myOrder=’DESC’;
$args[‘orderby’] = $myOrderBy;
$args[‘order’] = $myOrder;
return $args;
}
add_filter(‘bbp_before_has_topics_parse_args’, ‘my_custom_display_topic_index_query’ );
function printSelections(){
global $_SERVER;
return ‘<div class=”queries”><form action=”https://’ . $_SERVER[‘HTTP_HOST’] . $_SERVER[‘REQUEST_URI’].'”><table class=”querytable”><tr><td><select name=”myOrderBy”><option value=”post_modified”>Viimeisin muutos</option><option value=”post_date”>Luontipäivä</option><option value=”post_title”>Nimi/option><option value=”post_author”>Tekijä/option></select></td><td><input name=”myOrder” type=”radio” value=”DESC” />Laskeva</td><td><input name=”myOrder” type=”radio” value=”ASC” />Nouseva</td></tr></table></form>’;
}
add_shortcode( ‘printSelections’, ‘printSelections’ );
// Add do_shortcode(‘printSelections’); to loop-forums.php
<li class=”bbp-header”>
<ul class=”forum-titles”>
<li class=”bbp-forum-info”><?php _e( ‘Forum’, ‘bbpress’ ); ?><?php topPostLinksEcho(); ?>
<li class=”bbp-forum-topic-count”><?php _e( ‘Topics’, ‘bbpress’ ); ?>
<li class=”bbp-forum-reply-count”><?php bbp_show_lead_topic() ? _e( ‘Replies’, ‘bbpress’ ) : _e( ‘Posts’, ‘bbpress’ ); ?>
<li class=”bbp-forum-freshness”><?php _e( ‘Freshness’, ‘bbpress’ ); ?>
<?php do_shortcode(‘[printSelections]’); ?>
given the speed of most servers, I doubt that you would notice any time delay in processing the code in is a few lines of many thousand that get processed on each page load and one DB call.
best solution would be to time with and without and see if you can spot anything – but run it many times to get an average
In single-loop-forum.php I want to style my first forum differently to the rest by removing the voices/topics/freshness columns. As it happens this forum is only visible to non-logged in users by using this code:
.logged-in #bbp-forum-40250 {
display: none;
}
I found this code here:
/*Different divs for all topics of specific forums*/
function add_different_div() {
$topic_id = bbp_get_topic_forum_id();
if (( $topic_id == 123) or ( $topic_id == 456)){
?>
<div> this is some custom div text </div>
<?php
}
elseif ( $topic_id == 789){?>
<div> this is some OTHER custom div text </div>
<?php
}}
add_action( 'different_div', 'add_different_div' );
… but creating a function seems overkill. I think I just need an if() statement that says ‘if this forum ID then style it this way; else…’.
Any pointers?
Thanks.
I just too would like to add 1-3 buttons to the forum topics listing in order to change the default order. I would code it to changed template, if I would know what functions to use.
Just a note to everyone who might find this. It’s been more than 4 years, and this code still works great.
For anyone looking to add signatures on BuddyBoss Platform instead of bbPress/BuddyPress, this works too.