对你有选择的部件,每个成员页面(如个人资料,设置,活动...)BuddyPress的:添加自定义组件成员部分
我所试图做的是增加一个新的组件调用作业每页。我知道如何将链接添加到导航栏。这只是创造令我困惑的页面。
我要添加一个新的目录,如果是的话我该如何让buddypress知道。
有一个URL结构,如:
example.com/member/username/jobs
是很重要的。
谢谢!
对你有选择的部件,每个成员页面(如个人资料,设置,活动...)BuddyPress的:添加自定义组件成员部分
我所试图做的是增加一个新的组件调用作业每页。我知道如何将链接添加到导航栏。这只是创造令我困惑的页面。
我要添加一个新的目录,如果是的话我该如何让buddypress知道。
有一个URL结构,如:
example.com/member/username/jobs
是很重要的。
谢谢!
全局变量$ bp是要插入新作业组件的位置。通过转储全局变量$ bp,可以看到其中包含的所有元素,包括所有组件。为方便倾倒$基点,添加以下成员的header.php的顶部:
global $bp;
foreach ((array)$bp as $key => $value) {
echo '<pre>';
echo '<strong>' . $key . ': </strong><br />';
print_r($value);
echo '</pre>';
}
要添加的组件“乔布斯”到$ BP中的阵列是bp_nav。
在functions.php中添加以下内容:
add_action('bp_setup_nav', 'add_subnav_items', 100); //Priority must be higher than 10
function add_subnav_items() {
global $bp;
//Jobs tab
$tab_array['name'] = 'Jobs';
$tab_array['link'] = $bp->displayed_user->domain.'jobs';
$tab_array['slug'] = 'jobs';
$tab_array['parent_url'] = $bp->displayed_user->domain;
$tab_array['parent_slug'] = bp_core_get_userlink(bp_loggedin_user_id());
$tab_array['css_id'] = 'jobs';
$tab_array['position'] = 100;
$tab_array['user_has_access'] = '1';
$tab_array['screen_function'] = 'bp_jobs_screen_general';
$bp->bp_nav['jobs'] = $tab_array; //Add new array element to the 'bp_nav' array
}
的“screen_function”是处理是当选择“乔布斯的标签,所以你必须添加功能“中显示的屏幕的功能bp_jobs_screen_general “中的functions.php:
function bp_jobs_screen_general() {
bp_core_load_template(apply_filters('bp_jobs_screen_general','members/single/jobs'));
}
该功能会在会员/单个命名jobs.php一个模板文件/所以你必须创建它。有关screen_function如何工作的示例,请参阅在wp-content/plugins/buddypress/bp-groups/bp-groups-screens.php中显示Groups屏幕的功能。
不起作用...子菜单出现在成员页面菜单中,但是如果点击它,我会得到404错误。 – Alexey 2013-08-29 14:29:34