index222.jpgВ продолжении предыдущей статьи про условные операторы WordPress и выводе текста только на главной, мы рассмтрим еще один способ того, как закрепить статический текст на главной странице блога на WordPress. В результате поисков подходящего способа, было найдено несколько решений.

При поисковой оптимизации главной страницы блога на WordPress по целевым запросам возникает проблема, связанная с тем, что старые посты постепенно заменяются новыми, исчезая с главной страницы. Т.е. практически невозможно постоянно поддерживать необходимую плотность ключевых слов на главной странице блога без специальных ухищрений.

Вот реальный пример. На моем сайте по продаже мини игр, сделанном на базе WordPress, описание каждой игры является обычным постом. Таким образом, самая последняя игра висит на главной странице сайта самой первой. Это меня вполне устраивает, но хотелось бы провести оптимизацию главной страницы по таким высокочастотным запросам, как, например, «мини игры». Для этого надо повесить статический текст, рассказывающий о мини играх: «мини игры — это небольшие игры в которые играют … На нашем сайте можно скачать лучшие мини игры. И т.д и т.п.»

Статическая главная страница

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

Закрепленный пост

Многие знают о плагине WP-Sticky, который позволяет придать любому посту свойства последнего, т.е. закрепить его навверху главной странцы. В некоторых случаях это может оказаться подходящим решением, но в моем случае были недостатки. Дело в том, что закрепленный пост обладает всеми свойствам обычного поста, созданного последним. В частности, участвует в поиске и содержится в виджете «Последние посты». Естественно, меня не устраивало, что в списке последних игр будет постоянно висеть что-то типа «мини игры».

Включение текста в шаблон

Поискав альтернативные решения, я понял, что без правки шаблона не обойтись, и нашел несколько однотипных решений: редактируем шаблон главной страницы (файл home.php или index.php) и вставляем перед началом вывода постов (перед строкой <?php if (have_posts()) : ?> ) код, который отобразит требуемый текст.

Единственная возникающая сложность — сделать так, чтобы текст выводился только на главной странице и не выводился на страницах вида «www.site.ru/page/2/«, «www.site.ru/page/3/» и т.д. Функция is_home() здесь не поможет, но можно с успехом использовать глобальную переменную $paged, принимающую номер страницы или пустую строку в случае главной страницы (в случае если текст нужен только на главной странице то правильнее использовать «1»).

Код принимает вид:

<?php
global $paged;
if(is_home() && $paged == "1") :
?>
Вывод текста
<?php endif; ?>

Вообщем-то, этого вполне достаточно: требуемый текст можно вписать прямо в шаблон. Но это не очень удобно, если нам захочется в будущем отредактировать этот текст — придется снова редактировать шаблон.

Лично я остановился на варианте выводить содержимое определенной страницы WordPress. В случае необходимости текст можно в любой момент отредактировать, используя возможности самого WordPress. Вот получившийся код:

<?php
global $paged;
if(is_home() && $paged == "1") :
?>

<?php
$my_query = new WP_Query('pagename=mini-game'); // тут надо указать название требуемой page
while ($my_query->have_posts()) : $my_query->the_post();
?>
<div class="post">
<h1><?php the_title(); ?></h1>
<?php the_content(' '); ?>
</div>
<?php endwhile; ?>
<?php endif; ?>

Чтобы исключить страницу из меню, добавьте в вызов wp_list_pages (формирующий ссылки на страницы) параметр exclude с id страницы.

<?php wp_list_pages('depth=1&...&exclude=id'); ?>

Возможно, кому-то больше понравятся другие варианты: вывести текст из файла (@readfile(‘/path/file.html’);) или добавить еще один «сайдбар» с текстовым виджетом.

h++p://developerguru.net/post/static-text-on-wordpress-main-page/

Категория: PHP, HTML, CSS..., WordPress | Теги:

Комментарии к записи “Вывод текста только на главной странице”

  1. Валерий | 7.02.2011

    Здравствуйте, Макс. Давно ищу способ вывода статичной статьи на главной странице. Именно с этой целью и выбрал для своего сайта тему WP Arthemia. Шаблон позволяет выводить статью на главной, только беда в том, что эта статья принадлежит рубрике headline и выводится как анонс. В открытом виде она имеет ссылку типа my-site.ru/lalala.html , а не my-site.ru/. Я попробовал запихнуть статью непосредственно в шаблон, в index.php , но это тоже не решение проблемы.

    Прочитал вашу статью, но у меня не получилось с реализацией, тем более, что в рнр полный ноль. Буду вам весьма признателен, если поможете решить проблему.

  2. Макс | 8.02.2011

    Так а зачем Вы пытаетесь сделать запись (пост) главной страницей, так при любом раскладе у Вас будет дублирование контента…

    Создайте новую страницу (не запись) и назначьте ее главной.

  3. Squal | 1.04.2011

    Подскажите, а где именно и как прописать в
    ?
    какой файл ковырять?

  4. Макс | 1.04.2011

    Ковырять файлы в папке с темой… читайте пост тут все написано.

Оставьте свой комментарий