<ul id="nav">
<li <?php
if (is_home())
{
echo "id=\"current\"";
}?>>
<?php if (is_home()) {
echo "<span><b>Главная</b></span>";
}?>
<a href="/" title="Главная"><b>Главная</b></a>
</li>
<li <?php
if (is_page('products'))
{
echo "id=\"current\"";
}?>>
<?php if (is_page('products')) {
echo "<span><b>Продукция</b></span>";
}?>
<a href="/products/" title="Продукция"><b>Продукция</b></a>
</li>
<li <?php
if (is_page('projects'))
{
echo "id=\"current\"";
}?>>
<?php if (is_page('projects')) {
echo "<span><b>Проекты</b></span>";
}?>
<a href="/projects/" title="Проекты"><b>Проекты</b></a>
</li>
<li <?php
if (is_page('partners'))
{
echo "id=\"current\"";
}?>>
<?php if (is_page('partners')) {
echo "<span><b>Партнеры</b></span>";
}?>
<a href="/partners/" title="Партнеры"><b>Партнеры</b></a>
</li>
<li <?php
if (is_page('contacts'))
{
echo "id=\"current\"";
}?>>
<?php if (is_page('contacts')) {
echo "<span><b>Контакты</b></span>";
}?>
<a href="/contacts/" title="Контакты"><b>Контакты</b></a>
</li>
<li <?php
if (is_page('search'))
{
echo "id=\"current\"";
}?>>
<?php if (is_page('search')) {
echo "<span><b>Поиск</b></span>";
}?>
<a href="/search/" title="Поиск"><b>Поиск</b></a>
</li>
</ul>
Выдаёт ошибку:
Fatal error: Call to undefined function is_home() in Z:\home\localhost\www\index.php on line 19</span>
С учётом остального кода, девятнадцатая строка, это:
if (is_home())
Раньше такой проблемы не было. Например, на этом сайте я использовал тот же алгоритм и всё работает. Сейчас стал использовать это в другом проекте и, вот такая ошибка.
Вообще не понимаю в чём дело.
Спустя 2 минуты (3.12.2009 - 16:47) Dezigo написал(а):
is_home() такой функции не существует.
проверь поключается ли она.
проверь поключается ли она.
Спустя 3 минуты, 31 секунда (3.12.2009 - 16:50) Xpund написал(а):
Либо дабавь значение is_home(вотсюда)
Спустя 19 минут, 34 секунды (3.12.2009 - 17:10) Владимир Новицкий написал(а):
Цитата (Dezigo @ 3.12.2009 - 13:47) |
is_home() такой функции не существует. проверь поключается ли она. |
Можно подробнее для чайника?
Я в PHP ничего не понимаю, скрипт был взят из интернета.
По ссылке, приведённой выше, я использовал этот скрипт и всё работало (в составе Wordpress). И строчка is_home() там присутствует.
Просто сейчас я тестирую страницу в Денвере, но не в составе Wordpress. Может в этом проблема? И где эта и остальные функции должны подключаться?
Цитата |
Либо дабавь значение is_home(вотсюда) |
Какое значение?
Спустя 2 минуты, 35 секунд (3.12.2009 - 17:12) Xpund написал(а):
is_home() попробуй замени на is_home('home')
Спустя 6 минут, 31 секунда (3.12.2009 - 17:19) ApuktaChehov написал(а):
is_home() - это вызываемая функция. Ее необходимо создать(объявить) после чего, ее можно будет вызывать. У Вас же, она не объявлена и соответственно не существует.
Возможно к странице, где Вы взяли этот скрипт подключаются дополнительные файлы с помощью: include или require. Обычно для упрощения кода, функции выносятся в отдельные файлы, а после подключаются в программе, где это необходимо.
Возможно к странице, где Вы взяли этот скрипт подключаются дополнительные файлы с помощью: include или require. Обычно для упрощения кода, функции выносятся в отдельные файлы, а после подключаются в программе, где это необходимо.
Спустя 4 минуты, 5 секунд (3.12.2009 - 17:23) Dezigo написал(а):
function is_home()
{
# ... code here
return true;
}
как - пример твоей функции.
Спустя 1 час, 3 минуты, 31 секунда (3.12.2009 - 18:26) Владимир Новицкий написал(а):
Цитата (ApuktaChehov @ 3.12.2009 - 14:19) |
is_home() - это вызываемая функция. Ее необходимо создать(объявить) после чего, ее можно будет вызывать. У Вас же, она не объявлена и соответственно не существует. Возможно к странице, где Вы взяли этот скрипт подключаются дополнительные файлы с помощью: include или require. Обычно для упрощения кода, функции выносятся в отдельные файлы, а после подключаются в программе, где это необходимо. |
Помогите, пожалуйста, разобраться.
В теме для Wordpress, которую я сделал для указанного выше сайта, вроде не подключаются никакие дополнительные файлы, имеющие отношение к этому меню, однако, там всё работает прекрасно.
Если не сложно, посмотрите кто-нибудь эту тему и подскажите. Я же просто скопировал оттуда меню и изменил только названия пунктов.
Меню находится в файле header.php.
Спустя 3 часа, 34 минуты, 33 секунды (3.12.2009 - 22:01) ApuktaChehov написал(а):
Я посмотрел код. Увы я Вам не смогу помочь. Код странный, очень странный.
Совсем не читабельный, в некоторых местах, даже абсурдный.
Мне показалось, что это кусок чего то большего.
Совсем не читабельный, в некоторых местах, даже абсурдный.
Мне показалось, что это кусок чего то большего.
Спустя 7 минут, 18 секунд (3.12.2009 - 22:08) Владимир Новицкий написал(а):
Цитата (ApuktaChehov @ 3.12.2009 - 19:01) |
Я посмотрел код. Увы я Вам не смогу помочь. Код странный, очень странный. Совсем не читабельный, в некоторых местах, даже абсурдный. Мне показалось, что это кусок чего то большего. |
Вы какой код имеете в виду? Тот, который я привёл в начале темы или в zip-архиве?
Спустя 11 часов, 17 минут, 46 секунд (4.12.2009 - 09:26) ApuktaChehov написал(а):
Тот, который на народе выложен. И еще мой Вам совет, если Вам нужно только меню, то лучше его сделать самому или скачать конкретно меню.
А такой способ, выдирания чего то из чего то, чревать последствиями, к тому же, как я понял, Вы с PHP особо не дружите.
Кто писал этот код, я не знаю, но стиль его написания привел меня в ужас.
Хотя, возможно, это просто мера защиты своего детяща
А такой способ, выдирания чего то из чего то, чревать последствиями, к тому же, как я понял, Вы с PHP особо не дружите.
Кто писал этот код, я не знаю, но стиль его написания привел меня в ужас.

Хотя, возможно, это просто мера защиты своего детяща

Спустя 2 часа, 46 минут, 9 секунд (4.12.2009 - 12:12) Raskolnikoff написал(а):
найдите простым пойском в том же TotalCommander'е в каком файле инициализируется эта функция( Будет текст, похожий на тот, что привел Dezigo). И подключите его с помощью include_once(имя_файла). Искать советую на сайте с рабочим вариантом.
Спустя 1 час, 37 минут, 12 секунд (4.12.2009 - 13:49) ApuktaChehov написал(а):
В том то и дело, что ни в одном файле эта функция не инициализируется.
Спустя 1 час, 7 минут, 28 секунд (4.12.2009 - 14:57) Krevedko написал(а):
ну попробуй вообще убрать эту функцую..точнее ее вызов
Спустя 6 минут, 2 секунды (4.12.2009 - 15:03) Владимир Новицкий написал(а):
Цитата (ApuktaChehov @ 4.12.2009 - 10:49) |
В том то и дело, что ни в одном файле эта функция не инициализируется. |
Да вот, то и интересно, что ни в одном файле темы этого нет. А всё, что не касается темы, это файлы самого движка Wordpress. И значит, эта функция должна быть там. Но я уверен, что скрипт не имеет никакого отношения к создателям Wordpress. Как тогда такое может быть?
Спустя 2 минуты, 42 секунды (4.12.2009 - 15:06) Владимир Новицкий написал(а):
Цитата (Krevedko @ 4.12.2009 - 11:57) |
ну попробуй вообще убрать эту функцую..точнее ее вызов |
Если её убрать, то меню работать не будет.
Смысл всего этого меню и всех этих мучений в том, чтобы пункт меню текущей страницы не являлся ссылкой.
Может, кто знает другой вариант воспроизвести это.
Спустя 22 минуты, 45 секунд (4.12.2009 - 15:28) ApuktaChehov написал(а):
И все? Нужно было только это?
Ок. Элементарный вариант:
Есть 2 страницы index.php и contact.php.
В index.php создаем переменную:
В contact.php создаем переменную:
Имеем 2 ссылки:
и
Теперь код для каждой страницы:
Это простейщий код.
Ок. Элементарный вариант:
Есть 2 страницы index.php и contact.php.
В index.php создаем переменную:
$srt = "index";
В contact.php создаем переменную:
$str = "contact";
Имеем 2 ссылки:
<a href="index.php">Главная</a>
и
<a href="contact.php">Связь</a>
Теперь код для каждой страницы:
if($str == "index")
{
$menu1 = "<a href="index.php">Главная</a>";
}
else
{
$menu1 = "Главная";
}
if($str == "contact")
{
$menu2 = "<a href="contact.php">Связь</a>";
}
else
{
$menu2 = "Связь";
}
echo($menu1. "|" .$menu2);
Это простейщий код.
Спустя 1 минута, 42 секунды (4.12.2009 - 15:30) Krevedko написал(а):
работать будет. может не совсем так как положено
насколько я понял из скрипта, эти функции определяют, на какой странице ты сейчас находишься и соответственно делают ссылку активной или нет.
мне вот что странно..говоришь ругается на функцию is_home
а вот там ниже есть функция is_page...
на нее не ругается ?
почти наверняка is_home должна лежать где-то там же где и is_page
насколько я понял из скрипта, эти функции определяют, на какой странице ты сейчас находишься и соответственно делают ссылку активной или нет.
мне вот что странно..говоришь ругается на функцию is_home
а вот там ниже есть функция is_page...
на нее не ругается ?
почти наверняка is_home должна лежать где-то там же где и is_page
Спустя 56 минут, 7 секунд (4.12.2009 - 16:26) Владимир Новицкий написал(а):
Цитата (Krevedko @ 4.12.2009 - 12:30) |
работать будет. может не совсем так как положено насколько я понял из скрипта, эти функции определяют, на какой странице ты сейчас находишься и соответственно делают ссылку активной или нет. мне вот что странно..говоришь ругается на функцию is_home а вот там ниже есть функция is_page... на нее не ругается ? почти наверняка is_home должна лежать где-то там же где и is_page |
Совершенно верно. Если тупо убрать из кода всё, что касается is_home, то ругаться начинает уже на следующую - is_page. Просто, когда ругается на is_home, то дальше ничего не грузится и, поэтому выдаётся только одна, первая ошибка.
Спустя 5 минут, 48 секунд (4.12.2009 - 16:32) Владимир Новицкий написал(а):
Вот сейчас вставил это меню в абсолютно другую тему Wordpress и всё опять заработало...
Спустя 16 минут, 23 секунды (4.12.2009 - 16:48) Krevedko написал(а):
значит там есть эти функции. смотри, какие файлы подключаются перед выводом меню и ищи в них. или воспользуйся кодом, что дал ApuktaChehov.
Кстати рабочий код дал
Кстати рабочий код дал
Спустя 2 часа, 26 минут, 56 секунд (4.12.2009 - 19:15) Владимир Новицкий написал(а):
Цитата (Krevedko @ 4.12.2009 - 13:48) |
значит там есть эти функции. смотри, какие файлы подключаются перед выводом меню и ищи в них. или воспользуйся кодом, что дал ApuktaChehov. Кстати рабочий код дал |
Ну я понял. Будем искать. Спасибо!
Спустя 1 год, 23 дня, 8 часов, 2 минуты, 33 секунды (28.12.2010 - 03:18) Владимир Новицкий написал(а):
Вот, я тут подумал (как мог)... А можно подобное меню сделать с привязкой к адресу URL?
Например, как это сделано с помощью SSI:
Вот, как это на PHP замутить?
Например, как это сделано с помощью SSI:
<ul id="nav">
<!--#if expr="$DOCUMENT_URI=/^\/index.html/" -->
<li>Home</li>
<!--#else -->
<li><a id="logo" href="/">Home</a></li>
<!--#endif -->
<!--#if expr="$DOCUMENT_URI=/^\/services\/index.html/" -->
<li>Services</li>
<!--#else -->
<li><a href="/services/">Services</a></li>
<!--#endif -->
<!--#if expr="$DOCUMENT_URI=/^\/contacts\/index.html/" -->
<li>Contacts</li>
<!--#else -->
<li><a href="/contacts/">Contacts</a></li>
<!--#endif -->
</ul>
Вот, как это на PHP замутить?
Спустя 19 часов, 18 минут, 34 секунды (28.12.2010 - 22:36) Владимир Новицкий написал(а):
Я имею ввиду, как вот это <!--#if expr="$DOCUMENT_URI=/^\/index.html/" --> пишется на PHP?
Спустя 2 часа, 8 минут, 49 секунд (29.12.2010 - 00:45) Владимир Новицкий написал(а):
Сам разобрался!
Если кому интересно, вот рабочее current-меню (безо всяких функций):
Кто-нибудь из ГУРУ, гляньте. Не слишком кривое, в отличие от самого первого варианта?
Если кому интересно, вот рабочее current-меню (безо всяких функций):
<u id="nav">
<li><?php
$theuri = $_SERVER['REQUEST_URI'];
if ( ($theuri =="/") or ($theuri =="/index.php") ) {
$itemis = "главная";
}
else {
$itemis = "<a href=\"/\">главная</a>";
}
echo $itemis;
?></li>
<li><?php
$theuri = $_SERVER['REQUEST_URI'];
if ( ($theuri =="/archive/") or ($theuri =="/archive/index.php") ) {
$itemis = "архив";
}
else {
$itemis = "<a href=\"/archive/\">архив</a>";
}
echo $itemis;
?></li>
<li><?php
$theuri = $_SERVER['REQUEST_URI'];
if ( ($theuri =="/photos/") or ($theuri =="/photos/index.php") ) {
$itemis = "фото";
}
else {
$itemis = "<a href=\"/photos/\">фото</a>";
}
echo $itemis;
?></li>
<li><?php
$theuri = $_SERVER['REQUEST_URI'];
if ( ($theuri =="/services/") or ($theuri =="/services/index.php") ) {
$itemis = "услуги";
}
else {
$itemis = "<a href=\"/services/\">услуги</a>";
}
echo $itemis;
?></li>
<li><?php
$theuri = $_SERVER['REQUEST_URI'];
if ( ($theuri =="/contacts/") or ($theuri =="/contacts/index.php") ) {
$itemis = "контакты";
}
else {
$itemis = "<a href=\"/contacts/\">контакты</a>";
}
echo $itemis;
?></li>
</ul>
Кто-нибудь из ГУРУ, гляньте. Не слишком кривое, в отличие от самого первого варианта?