将部分添加到自定义菜单面板

时间:2012-12-26 作者:livearoha

我想在自定义菜单面板中添加一个新的部分,允许将预先确定的URL添加到自定义菜单中。

例如,我想要一个自定义post类型的归档页面。我知道,可以通过在“自定义链接”部分指定URL来手动添加它们,但如果站点URL发生更改,则也需要更改自定义菜单。

有人能为我指出正确的方向吗?

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

我为nav菜单页面制作了一个自定义菜单,以添加帖子类型的存档,就像帖子/页面等。我认为不可能让它更改站点url上的url url更改。您可以将url添加为/slug/ 而不是http://url.com/slug/, 但这对文件夹中的WordPress不起作用。

function add_post_types_nav_menu() {
    add_meta_box(\'post_types_meta_box\', __( \'Post type archives\' ), \'render_add_post_types_nav_menu\', \'nav-menus\', \'side\', \'default\' );
}
add_action(\'admin_init\', \'add_post_types_nav_menu\');

function render_add_post_types_nav_menu() {
    $post_types = get_post_types(array(\'public\' => true, \'_builtin\' => false), \'objects\', \'and\');
    ?>
    <div id="posttype-archive" class="posttypediv">
        <ul class="posttype-tabs add-menu-item-tabs">
            <li class="tabs"><?php _e( \'Post types\' ); ?></li>
        </ul>
        <div class="tabs-panel tabs-panel-active">
            <ul class="categorychecklist form-no-clear">
            <?php $i = 0; foreach ($post_types  as $post_type ) : $i++; ?>
                <li>
                    <label class="menu-item-title"><input type="checkbox" class="menu-item-checkbox" name="menu-item[-<?php echo $i; ?>][menu-item-object-id]" value="<?php echo $post_type->name; ?>"> <?php echo $post_type->labels->name; ?></label>
                    <input type="hidden" class="menu-item-title" name="menu-item[-<?php echo $i; ?>][menu-item-title]" value="<?php echo $post_type->labels->name; ?>">
                    <input type="hidden" class="menu-item-url" name="menu-item[-<?php echo $i; ?>][menu-item-url]" value="<?php echo get_post_type_archive_link($post_type->name); ?>">
                    <input type="hidden" value="custom" name="menu-item[-<?php echo $i; ?>][menu-item-type]">
                </li>
            <?php endforeach; ?>
            </ul>
        </div>
        <p class="button-controls">
            <span class="list-controls">
                <a href="/wp-admin/nav-menus.php?page-tab=all&amp;selectall=1#posttype-archive" class="select-all">Select All</a>
            </span>

            <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-archive">
                <span class="spinner"></span>
            </span>
        </p>
    </div>
    <?php
}

结束

相关推荐

Wordpress Custom Menus Issue

在我的模板中,我使用这样的调用来输出一些自定义菜单:<?php wp_nav_menu(array(\'container_class\' => \'secondary-navigation\', \'theme_location\' => \'secondary\')); ?> 自从升级到WordPress 3.1.4后,我就可以获得完整的页面列表,而不是自定义菜单我看到修复程序(通过谷歌)说我应该添加以下内容来修复此问题:\'fallback_cb\' => f