Домашняя страница только нижний колонтитул - PullRequest
1 голос
/ 11 ноября 2010

У меня есть блог, http://sweatingthebigstuff.com, и я хотел бы добавить в нижний колонтитул дополнительную строку, которая будет отображаться только с домашней страницы.Я нашел этот код, но он не работает для меня.У меня неправильный синтаксис или есть что-то еще, я могу попытаться заставить это работать?

<?php if ( is_home() ) { ?>
text
<?php } ?>

Здесь footer.php называется

<?php include (TEMPLATEPATH . '/sidebar1.php'); ?>

<div class="cleared"></div>

<?php get_footer(); ?>

код нижнего колонтитула:

текст 2

Контакт |Отказ от ответственности |Заявление о конфиденциальностиCopyright © 2009-2010 Потение Большой Материал.Все права защищены.

, а затем немного дерьма на сайте.

Ответы [ 4 ]

2 голосов
/ 11 ноября 2010

is_home() устанавливает глобальную переменную, которая, кажется, не сбрасывает себя и не переоценивает, как странно.

Попробуйте поставить wp_reset_query() в конце в начале кода оператора ifНа самом деле, было бы лучше вызвать его раньше, так как мы можем убедиться, что запросы сброшены

<?php wp_reset_query();
if ( is_home() ) { ?>
text
<?php }  ?>

Теперь, когда работает php, в идеале вам понадобится приведенный выше код. text

Я только что просмотрел исходный код и ясно вижу код php, который не должен быть виден, поскольку он предназначен для анализа на стороне сервера.В исходном представлении не должно присутствовать следующее: неверный файл редактируется?

<p>
<?php if ( is_home() ) { ?> 
text 
<?php } ?>
<wp_reset_query()>
<br />
<br />

Файл footer.php должен находиться в папке wp-content / themes / nameofyourtheme

1 голос
/ 11 ноября 2010

is_home() - это метод, который должен возвращать true или false.Вам нужно где-то реализовать этот метод.Если blogspot не реализует этот метод для вас, вам нужно сделать это самостоятельно.Я думаю, что для вашего сайта эта функция будет делать то, что вы хотите:

<?php
function is_home(){
    $r = $_SERVER['REQUEST_URI'];
    return $r == '/' || $r == '' || $r == '/index.php';
}

if(is_home()) {
?>
text
<?php } ?>

И где вы хотите, чтобы нижний колонтитул, поместите:

<?php include 'footer.php'; ?>

вместо строки:

<?php get_footer(); ?>

Я считаю, что ваша проблема в том, что get_footer () читает нижний колонтитул как текст, поэтому он не выполняет PHP заранее.Если вы сделаете это таким образом, вы можете добавить в заголовок столько PHP, сколько захотите.

0 голосов
/ 23 октября 2012

Вам нужно изменить код, чтобы включить проверку для is_front_page(), например, так:

<?php
    $ishomepage = ( is_home() || is_front_page() );
    switch( $ishomepage )
    {
        case true :
            echo 'Your homepage-only snippet of text goes here';
            break;

        case false :
        default :
            // Do nothing... or do something else...
            break;
    }

?>

Ссылка: Кодекс WordPress: is_front_page ()

По умолчаниюПри установке WP домашняя страница не определена, она использует ваш index.php и проверяет другие шаблоны, такие как шаблон home.php, в качестве отправной точки (home.php, только если она есть в вашей теме). Вот диаграмма из их онлайн-документовэто показывает, как работает их иерархия: Иерархия шаблонов WordPress .

По умолчанию WordPress отображает ваши последние сообщения на главной странице вашего сайта.Но многие пользователи WordPress хотят иметь статическую главную страницу или заставку в качестве главной.Этот «статичный титульный лист» является обычным для тех, кто хочет, чтобы их сайт не выглядел как «блог», что придает ему больше CMS (системы управления контентом).

Если вы хотитезнаете, как настроить статическую домашнюю страницу, прочитайте эту статью и следуйте инструкциям: Создание статической главной страницы .Когда вы устанавливаете статическую титульную страницу, is_home() будет работать как положено.

0 голосов
/ 11 ноября 2010

В вашем синтаксисе нет ничего плохого, и при просмотре источника вашей страницы я вижу "текст"

Какое расширение файла вашей страницы нижнего колонтитула?если это "footer.php", то я не должен видеть условия открытия и закрытия php ().php не будет работать, если расширение файла не равно ".php"

, как в предыдущем ответе:

<?php wp_reset_query();?> должно идти ДО <?php if(is_home()){?>text<?php } ?> в этом сценарии.is_home () зависит от наличия цикла на странице.Может быть, где-то вы использовали пользовательский запрос, или один из ваших плагинов использовал пользовательский запрос, который расстраивал переменные запроса по умолчанию.Как я уже сказал, используйте оператор сброса перед оператором if.

...