WordPress ( WordPress ):Я избавился от второй “домашней” страницы, но она недостаточно хороша

StackOverflow https://stackoverflow.com/questions/219870

  •  03-07-2019
  •  | 
  •  

Вопрос

У меня есть сайт WordPress (2.6.2), на котором я установил домашнюю страницу на статическую страницу вместо обычной страницы сообщений.Идентификатор этой страницы равен 2, поэтому в шаблоне WordPress я изменил wp_list_pages чтобы выглядеть вот так:

<?php wp_list_pages('exclude=2&title_li=&depth=1' ); ?>

это работает нормально, но теперь Домашняя страница не "загорается", когда она выбрана (потому что на самом деле выбран page_id 2, и она не отображается в меню).Есть ли какой-нибудь простой способ обойти это?

Если нет, то в общих чертах, каков трудный способ обойти это?Создаю свою собственную версию wp_list_pages функция?

Спасибо!

Это было полезно?

Решение

Установка статической страницы в качестве главной страницы не выделяет ссылку на меню, которая лежит в основе вопроса.

Итак, вы могли бы настроить (взломать) функцию wp_list_pages на стороне сервера, но вот вариант на стороне клиента, если вы того пожелаете:

Используйте библиотеку jQuery (удобно, что она поставляется с WP 2.2+), вызовите:

wp_enqueue_script('jquery');

или загрузите свою собственную версию:

wp_enqueue_script( 'jquery', '/path/to/your/jquery.js', false, '1.2.1');

Теперь добавьте немного javascript в свой шаблон, что-то вроде:

if(window.location.href == 'http://www.example.com/'){ //checks for root path - "home" ('http://www.example.com/?p=7' or 'http://www.example.com/2008-10/7' will not match)
    jQuery('#nav > ul > li > a:first').addClass('current_page_item');
}

В ответ: во-первых предполагается, что первая ссылка в вашем меню - это ссылка home / frontpage.Если это не так, выберите через значение href или position.Вот по положению:

~~~~~~~~~~~~~~~

jQuery(jQuery('#nav > ul > li > a')[3]).addClass('current_page_item'); //add 'current_page_item' css class so menu item highlighting occurs

Пример:

<div id="nav">

<ul>
<li> <a>Ссылка 0 </a> </li>
<li> <a>Ссылка 1 </a> </li>
<li> <a>Ссылка 2 </a> </li>
<li> <a>Ссылка 3 </a> </li>
<li> <a>Ссылка 4 </a> </li>
<li> <a>Ссылка 5 </a> </li>
</ul>

</div>


Предостережения:

  1. Проверьте фактическое название вашего идентификатора div меню (#навигация показано здесь)
  2. Вложенная структура меню ul / li (то есть более одного уровня) потребует дополнительного кода для правильного выбора a элемент.
  3. Если ссылки меню будут меняться, не используйте метод позиционного выделения, используйте другой хук, например, значение href ссылки на домашнюю / главную страницу.
  4. В если (окно.Расположение.href == 'http://www.example.com/') часть, возможно, должна быть регулярным выражением, если задействовано больше вариантов (https, несколько поддоменов и т.д.).

Другие советы

Вы можете установить статическую страницу в качестве главной страницы в меню Администрирование > Настройки > Панель чтения после входа в систему в качестве администратора.

Ручную запись Wordpress по этому вопросу можно найти здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top