是否自动在自定义菜单中添加类别和作者?

时间:2014-01-06 作者:Eric Mitjans

我花了几天时间在google上搜索,寻找一种方法,在创建类别和作者后立即将其自动添加到我的自定义菜单中(与自动添加页面的方式相同!),但到目前为止没有运气!

我真的希望我的客户不必每次创建新的类别或作者时都去菜单并手动将其添加到菜单中。

有什么想法吗?

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

您可以使用过滤器挂钩wp_get_nav_menu_items 在WP Nav菜单中添加新项目。下面的示例是在nav菜单中添加最后的帖子。

您可以将自定义函数添加到此过滤器中,例如使用特定ID添加来自作者的每个帖子。添加帖子的逻辑位于自定义函数中,如中的以下示例replace_placeholder_nav_menu_item_with_latest_post.

// Front end only, don\'t hack on the settings page
if ( ! is_admin() ) {
    // Hook in early to modify the menu
    // This is before the CSS "selected" classes are calculated
    add_filter( \'wp_get_nav_menu_items\', \'replace_placeholder_nav_menu_item_with_latest_post\', 10, 3 );
}

// Replaces a custom URL placeholder with the URL to the latest post
function replace_placeholder_nav_menu_item_with_latest_post( $items, $menu, $args ) {

    // Loop through the menu items looking for placeholder(s)
    foreach ( $items as $item ) {

        // Is this the placeholder we\'re looking for?
        if ( \'#latestpost\' != $item->url )
            continue;

        // Get the latest post
        $latestpost = get_posts( array(
            \'numberposts\' => 1,
        ) );

        if ( empty( $latestpost ) )
            continue;

        // Replace the placeholder with the real URL
        $item->url = get_permalink( $latestpost[0]->ID );
    }

    // Return the modified (or maybe unmodified) menu items array
    return $items;
}
源示例来自Viper007Bond,请参见the post 有关代码的详细信息。

结束