Как добавить ссылку на главную страницу в меню WordPress и иконку вместо текста?

3 нояб. 2011 г., 15:52:49
Просмотры: 18.6K
Голосов: 1

Я пробовал этот код:

function home_page_menu_args( $args ) {
$args['show_home'] = true;
return $args;
}
add_filter( 'wp_page_menu_args', 'home_page_menu_args' );


но получаю ошибку: Error 404 - Not Found

Я хочу, чтобы при клике на пункт "Главная страница" в меню отображались последние записи.
И хотел бы разместить иконку вместо текста "Главная страница".
Спасибо!

5
Комментарии

Как вы вызываете меню в вашем шаблоне? Что касается иконки, это можно сделать с помощью CSS, так что это не строго связано с WordPress. Ответы на этот вопрос можно найти на stackoverflow.com

sanchothefat sanchothefat
3 нояб. 2011 г. 16:08:12

@sanchothefat Я вызвал меню в Внешний вид → Меню.

humanbeing humanbeing
3 нояб. 2011 г. 16:10:23

У вас установлена статическая страница в качестве главной?

Nicole Nicole
3 нояб. 2011 г. 16:19:12

"но выдает мне эту ошибку: Error 404 - Not Found" - это непоследовательный вывод из первой части вашего вопроса. Какое действие, конкретно, вызывает у вас Error 404 - Not Found.

Chip Bennett Chip Bennett
3 нояб. 2011 г. 16:28:23

Вы также можете добиться этого с помощью этого плагина https://wordpress.org/plugins/wp-home-page-menu/

Vinod Dalvi Vinod Dalvi
9 мар. 2016 г. 10:14:19
Все ответы на вопрос 2
2

Чтобы добавить ссылку на главную страницу в меню, создаваемое через административную панель меню:

  1. перейдите в раздел Страницы,
  2. нажмите вкладку 'Просмотреть все'
  3. появится пункт 'Главная', отметьте его галочкой и нажмите 'Добавить в меню'

Добавление ссылки на главную страницу в меню WordPress

3 нояб. 2011 г. 16:22:33
Комментарии

Я собирался предложить это. Добавление $args['show_home'] = true; в page_menu_args делает две вещи: 1) Отображает ссылку "Главная" в стандартном фолбэке wp_page_menu() для wp_nav_menu(), и 2) добавляет опцию страницы "Главная" в метабокс Страницы в Консоль -> Внешний вид -> Меню, позволяя пользователю добавить ссылку на "Главную" в пользовательское меню.

Chip Bennett Chip Bennett
3 нояб. 2011 г. 16:30:20

@ChipBennett чекбокс 'Главная' всегда есть во вкладке "Все" независимо от других настроек темы. Я всегда находил его там без установки $args['show_home']. Вы наблюдали другое поведение в WP или я вас неправильно понял?

sanchothefat sanchothefat
3 нояб. 2011 г. 20:03:43
1

Если вы хотите программно добавить пункт меню HOME в главное меню (primary), вы можете использовать следующий код.

add_filter( 'wp_nav_menu_items', 'maple_custom_menu_filter', 10, 2 );
function maple_custom_menu_filter( $items, $args ) {
    /**
     * Если установлено главное меню.
     */
    if ( $args->theme_location == 'primary' ) {        

        $home = '<li class="menu-item"><a href="' . esc_url( get_home_url( '/' ) ) . '" title="'.esc_attr( get_bloginfo( 'name', 'display' ) ).'">Главная</a></li>';
        $items = $home . $items;
    }

    return $items;
}
23 апр. 2016 г. 02:07:43
Комментарии

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

Zach Smith Zach Smith
24 авг. 2017 г. 15:50:57