将自定义条目添加到菜单选项

时间:2015-03-12 作者:yivi

WP中的菜单选项已经支持创建的本机帖子类型、自定义帖子类型和现有分类法。

但在我的插件中,我提供了两个与任何post对象都没有关联的自定义URL。E、 g。domain.com/open-entries 将列出特定CPT的所有条目,并在Posteta中设置特定值;还有其他类似的员工。

我可以告诉我的用户使用菜单管理的“链接”部分添加指向此URL的链接,但需要他们记住并手动输入链接,这并不理想。

理想情况下,我想要这样的东西:enter image description here

其中“自定义链接”是另一个可折叠的面板,可以在其中插入自定义链接,因此更容易将它们插入到选定的菜单中。

我应该从哪里开始?有什么过滤器或操作可以钩住?

谢谢和问候。

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

这里有一个非常简单的例子。其想法是在菜单配置中添加一个新的元框。add_meta_box 用于admin_head-nav-menus.php 页码:

class Custom_Nav {
    function __construct() {
        add_action( \'admin_head-nav-menus.php\', array( $this, \'add_nav_menu_meta_boxes\' ) );
    }
    public function add_nav_menu_meta_boxes() {
        add_meta_box(
            \'custom_links\',
            __(\'Custom links\'),
            array( $this, \'nav_menu_link\'),
            \'nav-menus\',
            \'side\',
            \'low\'
        );
    }

    public function nav_menu_link() {?>
        <div id="posttype-custom-link" class="posttypediv">
            <div id="tabs-panel-custom-link" class="tabs-panel tabs-panel-active">
                <ul id ="custom-link-checklist" class="categorychecklist form-no-clear">
                    <li>
                        <label class="menu-item-title">
                            <input type="checkbox" class="menu-item-checkbox" name="menu-item[-1][menu-item-object-id]" value="-1"> <?php _e(\'Open entries\', \'text-doamin\'); ?>
                        </label>
                        <input type="hidden" class="menu-item-type" name="menu-item[-1][menu-item-type]" value="custom">
                        <input type="hidden" class="menu-item-title" name="menu-item[-1][menu-item-title]" value="<?php esc_attr_e(\'Open entries\', \'text-doamin\'); ?>">
                        <input type="hidden" class="menu-item-url" name="menu-item[-1][menu-item-url]" value="<?php echo esc_url( home_url(\'/open-entries\') ); ?>">
                        <input type="hidden" class="menu-item-classes" name="menu-item[-1][menu-item-classes]" value="custom-link">
                    </li>
                </ul>
            </div>
            <p class="button-controls">
                <span class="add-to-menu">
                    <input type="submit" class="button-secondary submit-add-to-menu right" value="Add to Menu" name="add-post-type-menu-item" id="submit-posttype-custom-link">
                    <span class="spinner"></span>
                </span>
            </p>
        </div>
    <?php }
}

$custom_nav = new Custom_Nav;

结束

相关推荐

注册_NAV_MENUS,然后以编程方式创建菜单

我有一个register_nav_menus 调用我的主题函数。php://register nav menu and footer nav. register_nav_menus( array( \'main-nav\' => \'Main Navigation\', \'footer-nav\' => \'Footer Navigation\' ) ); 这很好,但我想采取额外的步