添加新组子导航后的BuddyPress AJAX问题

时间:2012-11-29 作者:tifire

这个问题困扰了我好几天了。在添加了一个新的subnav之后,我在尝试使用下拉组过滤器时出现了以下错误:404未找到–mysite。com/wp-admin/admin-ajax。php“

基本上,我想在成员的主导航“组”下添加一个新的subnav项。目前有两个subnav项目:“会员资格”和“邀请”。我想添加我自己的subnav项目,名为“我的自定义组”。单击此子AV时,它将显示特定功能的组。

好的,第一步是创建新的subnav项。我通过向函数中添加以下代码实现了这一点。php

//add new subnav items
bp_core_new_subnav_item( array(
\'name\' => __( \'My Customized Groups\', \'buddypress\' ),
\'slug\' => \'my-custom-groups\',
\'parent_url\' => $groups_link,
\'parent_slug\' => $bp->groups->slug,
\'screen_function\' => \'groups_screen_my_custom_groups\',
\'position\' => 20
));
为确保我的subnav正常工作,我的screen\\u函数“groups\\u screen\\u my\\u custom\\u groups”是默认“groups\\u screen\\u my\\u groups”的精确副本。现在添加了subnav,组循环正确显示。但当我选择下拉过滤器(“上次激活”、“大多数成员”、“新建”等)时,会显示以下错误:404未找到–mysite。com/wp-admin/admin-ajax。php“

如果我通过在函数中添加以下代码将此新subnav设置为默认值。php

$args = array(
\'parent_slug\' => $bp->groups->slug,
\'screen_function\' => \'groups_screen_my_custom_groups\',
\'subnav_slug\' => \'my-custom-groups\'
);

bp_core_new_nav_default($args);
然后ajax可以正确地用于我的自定义组,但它不再适用于其他subnav项目。ajax似乎只适用于默认的subnav?这很奇怪。

一定是小毛病,但我到处找了两天,还是不知道出了什么问题。

提前感谢您的帮助。

Wordpress版本:3.4.2buddypress版本:1.6.1

1 个回复
SO网友:chifliiiii

是我之前评论过我有同样的错误。我不知道是什么原因造成的,但我找到了解决办法。

我使用的插件buddypress groups标签的修改版本(由我提供),允许我为组创建类别。该插件使用bp\\u core\\u new\\u subnav\\u项可以使用slug,如:http://local.dev/groups/category/teachers/

我的问题是,在活动循环的url中,更多链接在admin ajax上出现404 responde标头错误。php。如果我检查响应内容,所有活动数据都在那里。所以我不确定是什么导致了这个问题。

为了解决这个问题,我添加了一个函数,当ajax调用被触发时,该函数将返回200的状态头。在我的例子中,我需要“get\\u older\\u updates”操作,但我想您可以将其用于/bp themes/bp default/u inc/ajax中定义的任何其他操作。菲律宾比索:27

add_action( \'wp_ajax_activity_get_older_updates\', \'bp_dtheme_activity_template_loader2\' );
add_action( \'wp_ajax_nopriv_activity_get_older_updates\', \'bp_dtheme_activity_template_loader2\' );

function bp_dtheme_activity_template_loader2(){
    if(isset($_REQUEST[\'action\']) && $_REQUEST[\'action\'] == \'activity_get_older_updates\')
    {
        status_header( 200 );
    }
}   
希望有帮助!

结束

相关推荐

Use AJAX in shortcode

我有以下代码来显示随机引用的快捷码。问题:如何使按钮显示新的随机报价?我的意思是,这会点击按钮并显示一个新的报价(当然不会刷新页面)。function random_quote() { // quotes file $array = file(\"/path to txt file\"); // generate a random number between 0 and the total count of $array minus