在AJAX调用中加载侧边栏

时间:2014-01-24 作者:Manolo

我想在进行Ajax调用时加载自定义侧栏,因此我找到了以下方法:

add_filter( \'loop_start\', \'my_sidebar_widget\', 25 );
但它甚至在媒体管理面板中也显示了侧边栏,所以我考虑这样做:

if( !is_admin() ) {
    add_filter( \'loop_start\', \'my_sidebar_widget\', 25 );
}
但它仍然加载在媒体管理面板中,因此我尝试:

add_filter( \'loop_start\', \'my_sidebar_widget\', 25 );

if( is_admin() ) {
    remove_filter( \'loop_start\', \'my_sidebar_widget\', 25 );
}
但这样,侧栏就不会加载到Ajax调用中。你知道怎么解决吗?

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

is_admin() 退货true 如果您正在执行Ajax请求。这就是我的代码不起作用的原因。相反,我这样做了:

add_filter( \'loop_start\', \'my_sidebar_widget\', 25 );

function my_sidebar_widget() {
    if ( is_active_sidebar( \'my_sidebar\' ) && (defined( \'DOING_AJAX\' ) && DOING_AJAX ) || !is_admin() ) { 
        echo \'<div id="my_sidebar">\';
        dynamic_sidebar(\'my_sidebar\');
        echo \'</div>\';

    }
}
defined( \'DOING_AJAX\' ) && DOING_AJAX 如果正在执行Ajax调用,则返回true,并且!is_admin 如果您没有执行Ajax请求,则可以使用。这样,它就不会显示在媒体管理面板中。

结束

相关推荐

帮助进行AJAX前端评论审核

我正在为我管理的网站实现一个前端AJAX评论调节系统,但我很难让它正常工作。现在单击批准评论的链接会运行正确的php脚本,但会重新加载整个页面。所以它是可行的,但我希望在不重新加载整个页面的情况下使用ajax批准评论,但我缺乏javascript知识,这阻碍了我的工作。以下是代码(位于插件中):add_filter( \'comment_text\', \'p3_comment_moderation_buttons\' ); function p3_comment_moderation_butto