如何将(自定义)模块添加到外观->菜单?

时间:2014-06-01 作者:Toine

有人知道我如何将(自定义)模块添加到外观->菜单吗?(或者有一个关于如何操作的解释链接),这样当人们在后端更改菜单时,他们可以选择要添加到菜单中的内容(页面-帖子-链接-类别-标签-[自定义模块])

我问这个问题是因为我想构建一个单页主题。我希望能够添加<section>s到模板以分隔不同的“页面”<我的(粗略)想法是创建一个函数,通过模板“扫描”,隔离这些节的节ID,并将它们作为菜单模块添加到后端。这样,人们就可以将菜单项添加到其中一个部分的菜单中。

1 个回复
SO网友:fuxia

注册自定义post类型时,请设置参数show_in_nav_menusTRUE, WordPress会自动为您创建框。这也适用于自定义分类法。

例如,需要PHP 5.4或更新版本。

add_action( \'wp_loaded\', function() {

    $post_type = \'foo\';

    add_action( \'registered_post_type\', function( $registered ) use ( $post_type ) {

        if ( $registered !== $post_type )
            return;

        register_taxonomy(
            \'bar\',
            $post_type,
            [
                \'label\'             => \'Bars\',
                \'public\'            => TRUE,
                \'show_in_nav_menus\' => TRUE
            ]
        );
    });

    register_post_type(
        $post_type,
        [
            \'label\'             => \'Foo\',
            \'public\'            => TRUE,
            \'show_in_nav_menus\' => TRUE
        ]
    );
});
为其他任何内容添加自定义框更为困难。好adding 这很简单,它只是一个带参数的元盒$screen 设置为nav-menus:

add_action( \'admin_init\', function() {

    add_meta_box(
        \'test\',
        \'Custom Box\',
        function() {
            print \'Insert content here.\';
        },
        \'nav-menus\',
        \'side\',
        \'low\'
    );
});
困难的部分是以下操作:为列表项创建适当的HTML,用AJAX请求保存这些项,并在前端的nav菜单中呈现它们。检查内置框的详细信息。重复和解释这需要一本小说。

两个代码示例的输出应如下所示:

enter image description here

您可以看到帖子类型的框Foo, 分类学Bars 以及Custom Box. Form 是我自己在那次安装中的帖子类型之一,Location 在我的分类法中Languages 使用多语言印刷机构建的多语言网络中所有可用语言的自定义框。

结束

相关推荐

How to add taxonomy in menus?

书籍(自定义帖子类型)小说(税)科学(税)历史(税)--书籍体裁(税务)小说(术语)科学(学期)历史(学期)以下哪一项是做这件事的“好方法”?对于前一个(这是我目前在管理菜单中的功能,我为每个功能都提供了“register\\u taxonomy”功能),我无法选择要在菜单中显示的“Tax”。而对于后者,我可以将它们添加到菜单中,只需要一个“register\\u taxonomy”函数。