Перестал инклудится текст только на главную

У меня вдруг перестал работать инклуд с условием if
Либо текст вообще не вставляется, либо вставляется на все страницы. Перепутать с кодом я ничего не могла, так как копирую его с других своих вордпрессов.

В документе нет посторонних кодов, которые могли бы что-то сбить. Только вот такой код

<?php wp_footer(); ?>
Я не знаю, нужен он или нет.
Для вставки с условием использую либо

<?php if ( is_home() ) { ?>
текст

<?php } ?>

Тогда вообще пропадает со всех страниц.

Либо

<?php
if (is_home()) {
include(TEMPLATEPATH.’/fot.php’);
}
?>

Тоже не работает. Я не знаю, вдруг перестал работать.
Я правда там табличку вокруг построила, но не может же это быть условием для инклуда – чтобы вокруг таблички не было. Помогите. Что это может быть? С чем может конфликтовать?

Возможно в качестве Home Page включена статическая страница? в такой ситуации is_home() почемуто возвращает FALSE.
Выполните var_dump() для условия, и посмотрите что оно возвращает.

Начиная с 2.5 появилась функция is_front_page().

Спасибо Ю.Б. не знал.

Статическая не включена. Попробую is_front_page()

извините, у меня уникальная ситуация, у меня действительно перестал инклудится инклуд. Статическая страница не включена. ВСе нормально. Но код не вставляется! Клянусь. Может есть еще способы, кроме мне известных?

<?php
if (is_home_page()) {
include(TEMPLATEPATH.’/fot.php’);
}
?>

<?php
if (is_home_page()) {
include(TEMPLATEPATH."/fot.php");
}
?>

РЕально ничего не появляется!
появляется только есвли вставить просто инклуд через все страницы.

может, где-то ошибка в скобках?

В ДНК 🙂 Что такое is_home_page?

Простите, владею итальянским и английским, но не php. Как и многие здесь просто копирую известные мне коды. В чем ошибка? Не нужно второе подчеркивание?

Да нифига Вы не копируете, а придумываете. Выше упоминаются is_home и is_front_page, а у Вас появился гибрид – is_home_page.

Неа, не вставляется. Вот так не вставляется

<?php if ( is_page(’45’) ) { ?>
текст
<?php } ?>

И вот так

<?php if ( is_home() ) { ?>
текст
<?php } ?>
Возможно, из-за того, что я один раз запостила гибрид, там что-то нарушилось?

А так?
<?php if ( is_front_page() ) { echo ‘morda’; } ?>

Кроме того, имеет значение, где в шаблоне стоит этот код. Гарантировано (более-менее) все эти if_* работают в начале, а чем ближе к концу, то есть, по мере вызова всяких штучек-дрючек, вероятность неправильной работы возрастает. В таком случае можно сделать "двухходовку": в header.php пометсить код $is_my_home = is_home(); а в нужном месте проверять if ($is_my_home) { …. }

Гибрид, по-моему, совершенно безобидный. Хотя всякое бывает. Я как-то открыл сайт без одного файла в /wp-includes – базу снесло, пришлось всё переставлять с нуля. 😀

Да, именно как вы сказали – ближе к концу. У меня подобный код в средней колонке прекрасно работает. Но я сейчас пытаюсь поставить ссылки в Footer, причем в самое дно Footer. Не получается c echo.

А можно по поводу двухдуховки подробнее. В какие скобки заключить приведенные вами коды? Сложновато..

Всякий код php должен быть внутри <?php и ?> А будет ли это отдельный кусок или код будет дописан к другому – не важно. Остальное по аналогии. 🙂

Ставлю в header.php

<?php $is_my_home = is_home(); ?>

Ставлю в footer.php

<?php if ($is_my_home) {include(TEMPLATEPATH.’/fot.php’);}?>

Ничего не появляется. Наверное, мне уже ничего не поможет.

Попробуйте вот так:

<?php $GLOBALS["is_my_home"] = is_home(); ?>

и

<?php if ($GLOBALS["is_my_home"]) {include(TEMPLATEPATH.’/fot.php’);}?>

Заработало! Большое спасибо за помощь. Теперь всегда буду ваш код использовать.

Скажите, а каким образом заставить его ставить инклуд на страницу с конкрентным ID?

<?php $GLOBALS["is_page_(’45’)"] = is_page(’45’); ?>

Так?

<?php $GLOBALS["Это страница №45?"] = is_page(’45’); ?>

и проверять соответственно if ($GLOBALS["Это страница №45?"]).

Это я так намекаю, что идентификатор, который в кавычках, может быть любой, лишь бы не пересекался с другими глобальными переменными. 🙂 Но я бы НЕ советовал испытывать терпение php кириллицей и спецсимволами. Мало ли что…

Благодарю!

Я когда-то сел на те же грабли, is_home работает только в том случае, когда у вас на странице одна простая цепочка. Когда эта цепочка обрастет тем же кьери, то это будет уже не home, но это было давно.

Anonymous
Отправить
Ответ на: