在buddypress子菜单上获取404

时间:2015-12-08 17:40:23

标签: php wordpress menu buddypress

嗨,我一直试图解决这个问题一段时间,并通过谷歌和所有地方进行搜索。

我在buddypress的个人资料区域中创建了一个新菜单项。当我点击新的主菜单项时,它会转到正确的功能/页面,但当我点击子菜单项时,它会转到404页面。

我知道子菜单正在处理该功能,但似乎slug进入了404页面。这是我在bp-custom.php中放入的代码

function profile_new_nav_item() {

    global $bp;

    bp_core_new_nav_item(
    array(
        'name'                => 'eBlurts',
        'slug'                => 'eblurts',
        'default_subnav_slug' => 'eblurt-activity', // We add this submenu item below 
        'screen_function'     => 'view_manage_tab_main'
    )
    );
}

add_action( 'bp_setup_nav', 'profile_new_nav_item', 10 );

function view_manage_tab_main() {
    add_action( 'bp_template_content', 'bp_template_content_main_function' );
    bp_core_load_template( 'template_content' );
}

function bp_template_content_main_function() {
    if ( ! is_user_logged_in() ) {
        wp_login_form( array( 'echo' => true ) );
    }
}

function profile_new_subnav_item() {
    global $bp;

    bp_core_new_subnav_item( array(
        'name'            => 'eBlurt Activity',
        'slug'            => 'eblurt-activity',
        'parent_url'      => $bp->loggedin_user->domain . $bp->bp_nav[ 'eblurts' ][ 'slug' ] . '/',
        'parent_slug'     => $bp->bp_nav[ 'eblurts' ][ 'slug' ],
        'position'        => 10,
        'screen_function' => 'eblurt_activity'
        //'link' => bp_get_activity_directory_permalink()
    ) );

    bp_core_new_subnav_item( array(
        'name'            => 'Write eBlurt',
        'slug'            => 'write-eBlurt',
        'parent_url'      => $bp->loggedin_user->domain . $bp->bp_nav[ 'eblurts' ][ 'slug' ] . '/',
        'parent_slug'     => $bp->bp_nav[ 'eblurts' ][ 'slug' ],
        'position'        => 20,
        'screen_function' => 'write_eblurt'
        //'link' => $bp->loggedin_user->domain . $bp->bp_nav[ 'eblurts' ][ 'slug' ] . '/write-eBlurt/'
    ) );
}

add_action( 'bp_setup_nav', 'profile_new_subnav_item', 10 );

function eblurt_activity() {
    //bp_get_template_part( 'template_content' );
    add_action( 'bp_template_content', 'eblurt_content' );
    //bp_get_template_part( apply_filters( 'bp_core_template_plugin', 'members/single/plugins' ) );
    //bp_get_template_part( 'eblurts' );
    //echo 'has it reached here';
}
function write_eblurt() {
    //echo 'here now';
   //bp_get_template_part( 'template_content' );
    bp_get_template_part( 'members/single/plugins' );
    add_action( 'bp_template_content', 'eblurt_content' );
    //bp_core_redirect( get_option('siteurl') . "/videos/" );

    //echo 'this is where it is';
    //bp_core_load_template( 'template_content' );
    //bp_get_template_part( 'eblurts' );

}
function eblurt_content(){
bp_get_template_part( 'eblurts' );
}

我在评论中留下了一些我尝试过的东西。我还把文件" eblurts.php"在我的主题文件夹中。它似乎确实达到了它,因为它正在回显文件中的文本。

任何帮助或尝试的事情将不胜感激我疯了哈哈。或者,如果可能有更好的方法来做我想要的,基本上是---在配置文件区域中有一个菜单项转到我有一个表单供用户提交的页面 一些东西。

由于

1 个答案:

答案 0 :(得分:1)

当然,我在过去的几天里寻找为什么这个不起作用,在发布这个问题后一小时我就明白了。

无论如何,你必须使用的子菜单功能是什么" bp_core_load_template" NOT" bp_get_template_part"

更改:

bp_get_template_part( 'template_content' );

TO:

bp_core_load_template( 'template_content' );

所以希望得到同样错误的少数人会有所帮助。