[buddypress-trac] [BuddyPress Trac] #6736: Post On Buddypress Profile
buddypress-trac
noreply at wordpress.org
Mon Nov 16 19:24:39 UTC 2015
#6736: Post On Buddypress Profile
------------------------------+--------------------------------------------
Reporter: Dono12 | Owner:
Type: defect (bug) | Status: new
Priority: omg pizza | Milestone: Awaiting Review
Component: Component - | Version: 2.4.0
XProfile | Keywords: reporter-feedback dev-feedback
Severity: major |
------------------------------+--------------------------------------------
Can the developers/contributors add a post on profile button to show user
posts in the next update. It makes sense to have this function as it
incorporates Wordpress and Buddypress respectively. There is only one
plugin that I found which accomplished this feet:
<a href="https://wordpress.org/plugins/bp-posts-on-profile/">BP Posts On
Profile</a>
by Huseyin Berberoglu. The plugin is out of date and it takes tons of
modifications to get it going with an up to date Buddypress install.
The second method is a block of code placed in functions.php
{{{
function importSomething(){
return include_once 'bp-custom.php';
}
add_action( 'bp_setup_nav', 'buddyboss_child_bp_nav_adder' );
add_action( 'bp_template_content', 'profile_buddyboss_child_loop' );
bp_core_load_template( apply_filters( 'bp_core_template_plugin',
'members/single/plugins' ) );
function buddyboss_child_bp_nav_adder() {
global $bp;
$post_count = count_user_posts_by_type( $bp->displayed_user->id );
bp_core_new_nav_item(
array(
'name' => sprintf( __( 'Posts <span>%d</span>', 'my-poems' ), $post_count
),
'slug' => 'Articles',
'position' => 250,
'show_for_displayed_user' => true,
'screen_function' => 'buddyboss_child_list',
'item_css_id' => 'articles',
'default_subnav_slug' => 'public'
));
}
function buddyboss_child_list() {
add_action( 'bp_template_content', 'profile_buddyboss_child_loop' );
bp_core_load_template( apply_filters( 'bp_core_template_plugin',
'members/single/plugins' ) );
}
/*------- This is end of the code for above function ---------*/
function profile_buddyboss_child_loop() {
$myposts = get_posts( array(
'posts_per_page' => -1,
'author' => bp_displayed_user_id(),
'post_type' => 'post'
));
if( ! empty($myposts) ) {
foreach($myposts as $post) {
setup_postdata( $post );
if (has_post_thumbnail( $post->ID ) ):
$image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ),
'sidebar-smallthumbnew' );
else :
$image[0] = "http://www.movemie.com/wp-
content/uploads/2015/10/userpost.jpg";
endif;
echo '<li class="sidebar mostpop post-' . $post->ID . '"><span
id="postimage"><a href="' . get_permalink($post->ID) . '"><img src="' .
$image[0] . '" /></a></span><div id="postinfo"><a href="' .
get_permalink($post->ID) . '">' . get_the_title($post->ID) .
'</a></div></li>';
}
echo '</ul>';
wp_reset_postdata();
} else { ?>
<div class="info" id="message">
<p><strong><?php bp_displayed_user_fullname(); ?></strong> has No
posts.</p>
</div>
<?php }
}
/* This is end of the code for above function */
remove_filter('bp_setup_nav','');
function count_user_posts_by_type( $userid, $post_type = 'post' ) {
global $wpdb;
$where = get_posts_by_author_sql( $post_type, true, $userid, true);
$count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts $where" );
return apply_filters( 'get_usernumposts', $count, $userid );
}
}}}
This works fine but it's quite limited. It also messes with Buddypress
updates rendering the two latest Buddypress updates useless (Star message,
and Upload Background image).
Guys please get around to integrating this ability in Buddypress so one
doesn't have to spend hours searching and trouble shooting for a function
which I believe and others should be an already main component.
--
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/6736>
BuddyPress Trac <http://buddypress.org/>
BuddyPress Trac
More information about the buddypress-trac
mailing list