WordPress: я избавился от второй «домашней» страницы, но она недостаточно хороша - PullRequest
0 голосов
/ 21 октября 2008

У меня есть сайт 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?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 21 октября 2008

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

Итак, вы можете настроить серверную часть (взломать) функцию 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');
}

Часть a: first предполагает, что первой ссылкой в ​​вашем меню является ссылка home / frontpage. Если это не так, выберите через href значение или позицию. Вот положение:

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

jQuery(jQuery('#nav > ul > li > a')[3]).addClass('current_page_item'); //add 'current_page_item' css class so menu item highlighting occurs
* * Пример тысяча двадцать-один: * * 1 022


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

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

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

Запись WordPress по этому вопросу можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...