Trouble having newly registered users appear in members masonry

Every time a new user register an account their profile doesn't appear in the members masonry page https://ideaxdesign.com/members-masonry/. I have 5 people who signed so not a lot of traction so but I need this problem fixed immediately.

  • Adam Czajczyk

    Hello Cayes!

    I think the issue here is not the "Members masonry" module but the way BuddyPress shows members list. The "members" page by default is set to show "Last active" members and that returns only up to 10 members of the site that performed most recent activity. The same applies to the "Newest Registered" order.

    If you go to the "members-masonry" page on front-end and select one of these options from the drop-down list, only up to 10 members will be shown. If you switch it to "Alphabetical" order, you'll get a full - paged - list of all members. It also works that way with no Visual Composer and "Members masonry".

    That is a known problem with BuddyPress and must admit that I'm not sure why it hasn't been properly addressed yet. The solution involves a bit of customization of the theme. Take a look at this topic on buddypress forum please:

    https://buddypress.org/support/topic/make-members-list-default-to-alphabetical/

    There's a description on how to fix that so you might want to give it a shot.

    If you have any additional questions, let me know please.

    Best regards,
    Adam

  • Adam Czajczyk

    Hello Cayes!

    The issue here is that by default BuddyPress does not show members the way you want it to. The setting in your "Members masonry" module doesn't affect BuddyPress settings so even though it's set to "alphabetical" - the BuddyPress plugin doesn't honor that settings. I'm not sure why it is that way and it might be more of a question for VC developers but the solution is to create a custom "members" page template.

    In order to make BuddyPress sort members by alphabetical order (thus showing all of them, including those new ones), try this please:

    1. access your site using FTP or cPanel's "File Manager"
    2. go to the "/wp-content/themes" folder
    3. enter your active theme's folder
    4. create a new folder called "buddypress" there
    5. enter that folder and inside create folder called "members"
    6. inside that new folder create a file called "members-loop.php"
    7. put following code into that file (use a "clean text" editor such as e.g. Notepad++, Sublime etc)

    <?php
    
    /**
     * BuddyPress - Members Loop
     *
     * Querystring is set via AJAX in _inc/ajax.php - bp_dtheme_object_filter()
     *
     * @package BuddyPress
     * @subpackage bp-default
     */
    
    ?>
    
    <?php do_action( 'bp_before_members_loop' ); ?>
    
    <?php if ( bp_has_members( bp_ajax_querystring( 'members' )  . '&type=alphabetical' ) ) : ?>
    
    	<div id="pag-top" class="pagination">
    
    		<div class="pag-count" id="member-dir-count-top">
    
    			<?php bp_members_pagination_count(); ?>
    
    		</div>
    
    		<div class="pagination-links" id="member-dir-pag-top">
    
    			<?php bp_members_pagination_links(); ?>
    
    		</div>
    
    	</div>
    
    	<?php do_action( 'bp_before_directory_members_list' ); ?>
    
    	<ul id="members-list" class="item-list" role="main">
    
    	<?php while ( bp_members() ) : bp_the_member(); ?>
    
    		<li>
    			<div class="item-avatar">
    				<a href="<?php bp_member_permalink(); ?>"><?php bp_member_avatar(); ?></a>
    			</div>
    
    			<div class="item">
    				<div class="item-title">
    					<a href="<?php bp_member_permalink(); ?>"><?php bp_member_name(); ?></a>
    
    					<?php if ( bp_get_member_latest_update() ) : ?>
    
    						<span class="update"> <?php bp_member_latest_update(); ?></span>
    
    					<?php endif; ?>
    
    				</div>
    
    				<div class="item-meta"><span class="activity"><?php bp_member_last_active(); ?></span></div>
    
    				<?php do_action( 'bp_directory_members_item' ); ?>
    
    				<?php
    				 /***
    				  * If you want to show specific profile fields here you can,
    				  * but it'll add an extra query for each member in the loop
    				  * (only one regardless of the number of fields you show):
    				  *
    				  * bp_member_profile_data( 'field=the field name' );
    				  */
    				?>
    			</div>
    
    			<div class="action">
    
    				<?php do_action( 'bp_directory_members_actions' ); ?>
    
    			</div>
    
    			<div class="clear"></div>
    		</li>
    
    	<?php endwhile; ?>
    
    	</ul>
    
    	<?php do_action( 'bp_after_directory_members_list' ); ?>
    
    	<?php bp_member_hidden_fields(); ?>
    
    	<div id="pag-bottom" class="pagination">
    
    		<div class="pag-count" id="member-dir-count-bottom">
    
    			<?php bp_members_pagination_count(); ?>
    
    		</div>
    
    		<div class="pagination-links" id="member-dir-pag-bottom">
    
    			<?php bp_members_pagination_links(); ?>
    
    		</div>
    
    	</div>
    
    <?php else: ?>
    
    	<div id="message" class="info">
    		<p><?php _e( "Sorry, no members were found.", 'buddypress' ); ?></p>
    	</div>
    
    <?php endif; ?>
    
    <?php do_action( 'bp_after_members_loop' ); ?>

    8. Save the file, clear site's cache and check your members page.

    It should now be "by default" set to "alphabetical" order and show all the members of the site.

    I hope that helps!

    Best regards,
    Adam

Thank NAME, for their help.

Let NAME know exactly why they deserved these points.

Gift a custom amount of points.