Автоматическое добавление категорий и авторов в пользовательское меню?


Я потратил пару дней на поиск в Google, ища способ автоматического добавления категорий и авторов в мое пользовательское меню, как только они будут созданы (так же, как автоматически добавляются страницы!), Но пока не повезло!

Я бы очень хотел, чтобы моему клиенту не приходилось заходить в меню и добавлять категорию или автора в меню вручную каждый раз, когда создается новый.

Есть идеи?

Author: Mayeenul Islam, 2014-01-06

1 answers

Вы можете использовать крючок фильтра wp_get_nav_menu_items для добавления новых элементов в меню WP Nav. Следующий пример - добавить последние записи в навигационное меню.

Вы можете добавить в этот фильтр свою пользовательскую функцию, например, добавить каждое сообщение от автора с определенным идентификатором. Логика добавления записей находится внутри вашей пользовательской функции, как показано в следующем примере 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, см. Сообщение для получения дополнительной информации о коде.

 1
Author: bueltge, 2014-01-06 15:35:41