首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress菜单- ajax加载

Wordpress菜单- ajax加载
EN

Stack Overflow用户
提问于 2012-07-16 17:29:49
回答 2查看 1.9K关注 0票数 0

可以通过Ajax动态加载Wordpress菜单吗?

最好的解决方案是使用wp_nav_menu()。

EN

回答 2

Stack Overflow用户

发布于 2016-12-31 14:30:46

如果您的主题需要使用JavaScript动态初始化菜单,则初始化代码的模式应为:

代码语言:javascript
复制
jQuery(function($) {
    function initMainNavigation( container ) {
        /* set up container... */
    }
    initMainNavigation( $( '.main-navigation' ) );

    $( document ).on( 'customize-preview-menu-refreshed', function( e, params ) {
        if ( 'primary' === params.wpNavMenuArgs.theme_location ) {
            initMainNavigation( params.newContainer );
            /* optionally sync a previous menu state from params.oldContainer... */
        }
    });
});

传递给事件处理程序的参数由以下属性组成:

包含从Ajax检索到的新菜单容器元素的

  • newContainer: jQuery对象;这是您要操作的对象,以便对包含被替换的菜单容器的元素的前一个jQuery对象进行initialize.
  • oldContainer:;如果旧菜单中有任何状态应保留在新菜单中,这将非常有用,例如展开了哪些子菜单(如在20中,将传递给模板中wp_nav_menu()的参数数组展开,如将wp_nav_menu()调用的索引更新为template_location.
  • instanceNumber:
票数 1
EN

Stack Overflow用户

发布于 2012-07-16 17:36:58

您可以创建一个自定义文件来处理主题中的ajax请求,返回wp_nav_menu();的HTML输出并调用该文件。

wp-content/themes/your-theme/ajax.php:

代码语言:javascript
复制
<?php wp_nav_menu(); ?>

这很简单,但效率很高。不过,要注意安全性。确保验证输入,并且不要eval()任何输入!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11501581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档