Home » Движки сайтов и блогов » Текст на главной странице WordPress

Текст на главной странице 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, принимающую номер страницы или пустую строку в случае главной страницы.

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

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

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

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

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

  • Андрей

    Попробовал этот вариант [quote]<?php
    global $paged;
    if(is_home() && $paged == "") :
    ?>
    Вывод текста
    <?php endif; ?>[/quote]Странно выводит: если с главной intergames.net.ru перейти на 2страницу все рушится, в рубриках ок. Помогите разобраться. Мой код [quote]
    <div class="post">

    <div class="posttop">
    <div class="dateicon"></div>
    <div class="posttitle">
    <h2 id="post-<?php the_ID(); ?>">Лучшие мини игры на сайте <a href="<?php echo get_option(‘home’); ?>/"><?php bloginfo(‘name’); ?></a></h2>
    </div>
    </div>
    <?php global $paged;
    if(is_home() && $paged == "") : ?>
    <div class="entry">
    <p>текст</p>
    </div>
    </div>
    <?php endif; ?>[/quote]

  • [quote]
    <?php global $paged;
    if(is_home() && $paged == "") : ?>
    [b]<div class="entry">[/b]
    <p>текст</p>
    [b]</div>
    </div>[/b]
    <?php endif; ?>
    [/quote]

    Внутри условия один открывающий div и 2 закрывающих. Вот и получается, что если условие не выполняется, то нехватает закрывающего div.

  • Большое спасибо. Позвольте пару вопросов не по топику:
    как вы учитываете кол-во загрузок в GBosse?
    "Похожие записи" в конце статьи это выводит плагин?

  • Учитываю двумя способами:
    1. Все url для скачивания сделал через http://gameboss.ru/getfile.php?url=
    Например:
    [quote]http://gameboss.ru/getfile.php?url=http://gameboss.ru/download/racing_rus.exe[/quote]
    2. Через Гугл Аналитикс.

    Для Вордпресса есть плагин simple-tags, который позволяет показывать похожие посты и улучшает работу с тегами.

  • Меня интересует абсолютно противоположный вопрос:
    Как сделать чтобы новость появлялась только в рубрике, а не на главной. Искал в поисковиках, но ответа так и не получил.

  • Можно не показывать на главной посты из определенной категории.

  • Alex

    Здравствуйте.
    Я новичок в блогерстве((
    Разъясните мне пожалуйста, как сделать, чтоб при наборе адреса посетитель попадал на главную(статическую страницу), а от туда уже начинал серф.

  • Дмитрий

    Плагин попробуйте WP Custom Widget

  • Goajazzz

    Здравствуйте! Воспользовался вот такой конструкцией:
    <?php
    global $paged;
    if(is_home() && $paged == “”) :
    ?>
    Вывод текста
    <?php endif; ?>

    В итоге вывод текста вплотную прилип к первому посту – как можно сделать отступ?

  • Максим

    Код не работает в версии 3.3.1 (((( Подскажите пожалуйста как заставить его работать.

  • Юрий

    Вечер добрый!Спасибо за статью именно это и искал ,но думал ,что как то это можно вывести в админ панель. Спасибо Вам !!!!!!

  • Анна

    Спасибо за труд! Код отлично работает.