J'essaie de créer un onglet de profil Buddypress personnalisé et d'en faire la page de destination d'un profil d'utilisateur. J'ai défini l'onglet dans functions.php:
//Change BuddyPress default Members landing tab. define('BP_DEFAULT_COMPONENT', 'overview' );
Ensuite, je l'ai défini comme page de destination du profil dans wp-config.php avec:
// Profile home tab function profile_tab_overview() { global $bp; bp_core_new_nav_item( array( 'name' => 'Overview', 'slug' => 'overview', 'screen_function' => 'overview_screen', 'position' => 40, 'parent_url' => bp_loggedin_user_domain() . '/overview/', 'parent_slug' => $bp->profile->slug, 'default_subnav_slug' => 'overview' ) ); } add_action( 'bp_setup_nav', 'profile_tab_overview' ); function overview_screen() { // Add title and content here - last is to call the members plugin.php template. add_action( 'bp_template_title', 'overview_title' ); add_action( 'bp_template_content', 'overview_content' ); bp_core_load_template( 'buddypress/members/single/plugins' ); } function overview_title() { echo 'Overview'; } function overview_content() { echo 'Content'; }
Si je change BP_DEFAULT_COMPONENT en une page de profil Buddypress standard comme "profil", cela fonctionne, mais ce n'est pas le cas avec la page personnalisée que j'ai créée. Quelqu'un sait pourquoi ou ce que je peux faire à ce sujet?
3 Réponses :
Quelle version de BuddyPress utilisez-vous? Une mise à niveau vers 4.0+ peut être nécessaire - veuillez noter que ce comportement peut être attendu. Depuis https://buddydev.com/what-is-new- in-buddypress-4-0 /
Restauration du comportement de BP_DEFAULT_COMPONENT
La constante BP_DEFAULT_COMPONENT est utilisée pour spécifier l'atterrissage par défaut page sur le profil d'un utilisateur lorsque son profil Le lien ( http://example.com/members/username/ ) est ouvert. p >
Dans BuddyPress 3.0, lorsque la page d'accueil de l'utilisateur (écran d'accueil) a été ajoutée, le le comportement a changé. Si la page d'accueil était activée, cette constante ne fonctionne pas. Pour que cela fonctionne, vous avez dû désactiver la page d'accueil de l'utilisateur. BuddyPress 4.0 restaure à nouveau la primauté de BP_DEFAULT_COMPONENT. Maintenant, cela fonctionnera comme prévu.
Sinon, vous utilisez la version 4.0+, une rétrogradation peut être nécessaire: https://buddypress.org/support/topic/bp_default_component-no-longer-working/
J’ai utilisé define (‘BP_DEFAULT_COMPONENT’, ‘dashboard’); dans mon functions.php mais cela ne fonctionne plus depuis quelques mises à jour. .... Je viens de revenir à la version 3.2.0 et cela a maintenant résolu le problème.
Cela devrait corriger le problème avec BuddyPress 4.0+ :)
//Set Default Tab to Overview define('BP_DEFAULT_COMPONENT', 'overview' ); add_filter( 'bp_is_active', function($retval, $component){ if($component === 'overview') return true; return $retval; }, 10, 2 );
Le correctif @Russ Powers a parfaitement fonctionné ... pour tous les autres comptes sauf le vôtre. lorsque je clique sur votre profil dans buddypress dasboard, j'obtiens une erreur 404 lorsque l'adresse est: domaine / membres / vous
si j'utiliserais uniquement:
add_action( 'load-profile.php', function() { if( ! current_user_can( 'manage_options' ) && function_exists( 'bp_core_get_user_domain' ) ) exit( wp_safe_redirect( bp_core_get_user_domain( get_current_user_id() ) ) ); } );
cela fonctionne bien . mais avec mon onglet personnalisé, j'obtiens une erreur 404 .. aucune idée pourquoi. tout après / membre / vous / quelque chose fonctionne, mais pour chaque utilisateur qui entre son profil / membres / mynick il y a une erreur.
et j'utilise cette action, donc personne ne va directement à wp-admin p >
//Set Default Tab to active define('BP_DEFAULT_COMPONENT', 'active' );