在BuddyPress中添加自定义页签时路径错误

时间:2014-12-06 作者:user3906056

在BuddyPress菜单中添加自定义选项卡时,我无法加载正确的模板。我认为路径有问题,因为我在列出所有成员的成员页面结束。

我在浏览器中获得此url:mydomain。com/members/johndoe/myads,但它只列出所有成员,而不是myads中的内容。php

我添加了我的广告。php输入:wp-content/plugins/buddypress/bp-themes/bp-default/members/single/myads。phpandwp内容/主题/我的主题/我的广告。php

// Set up Cutsom BP navigation
function my_setup_nav() {
  global $bp;

  bp_core_new_nav_item( array( 
        \'name\' => __( \'My ads\', \'buddypress\' ), 
        \'slug\' => \'myads\', 
        \'position\' => 30,
        \'screen_function\' => \'my_item_one_template\', 
  ) );

  // Change the order of menu items
  $bp->bp_nav[\'messages\'][\'position\'] = 100;
}

add_action( \'bp_setup_nav\', \'my_setup_nav\' );

// Load a page template for your custom item. You\'ll need to have an myads.php in your theme root.

function my_item_one_template() {
  bp_core_load_template( \'myads\');
}

1 个回复
最合适的回答,由SO网友:shanebp 整理而成

尝试以下操作:

function my_setup_nav() {
  global $bp;

  bp_core_new_nav_item( array( 
      \'name\' => __( \'My ads\', \'buddypress\' ),
      \'parent_slug\' => $bp->profile->slug,
      \'slug\' => \'myads\', 
      \'position\' => 30,
      \'screen_function\' => \'my_item_one_template\',
      \'default_subnav_slug\' => \'myads\' 
  ) );

}

add_action( \'bp_setup_nav\', \'my_setup_nav\' );

function my_item_one_template() {
    add_action( \'bp_template_content\', \'my_item_create_screen\' );
    bp_core_load_template( apply_filters( \'bp_core_template_plugin\', \'members/single/plugins\' ) );
}

function my_item_create_screen() { 
    locate_template( array( \'buddypress/members/single/myads.php\' ), true );
}
放我的广告。此文件夹结构中主题或子主题中的php:[theme]/buddypress/members/single/myads.php

如果仍然找不到模板,则必须注册模板,以便BP可以在模板堆栈中找到它。这可能相当复杂。更简单的方法是将代码直接放入函数中:

function my_item_create_screen() { 
?>
   <h2>MY ADS</h2>  
<?php 
}

结束

相关推荐

动态添加页面子目录,就像BuddyPress一样

我有一页写着slug/namecharts. 所以url看起来像http://domain.tld/charts/ 用于图表页面。当我键入url时http://domain.tld/charts/(something) 或http://domain.tld/charts/(something)/(something), 我得到的错误并没有找到,逻辑上应该是这样的,因为并没有具有给定名称的子页。现在想要的是,什么时候去http://domain.tld/charts/(something) 或http://