Forums

Adding post title to navigation menu label in custom menus (1 post)

  1. idrivevideo
    Member
    Posted 3 months ago #

    Here is my problem: I want to display the most recent posts in a custom menu. I use the code below and everything works fine. With the placeholder #latestpost in the URL field of the Custom links field option under Appearance->Menus, I can get the latest post URL link displayed in the menu. The problem Is I would like to use as label for that the real post title and not a placeholder. Is that possible? Any help will be greatly appreciated.

    // 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' => 5,
    ) );

    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;
    }

Reply

You must log in to post.

About this Topic