Как вывести блок-приветствие на главной странице сайта

Сначала реализовал подобную плюшку на своём блоге, а затем решил оформить в виде инструкции. Такие вопросы регулярно возникают у пользователей сайтов на WordPress, теперь буду просто делиться ссылкой на материал :-)

Чтобы вы понимали о чём идёт речь, зайдите на главную страницу моего блога и взгляните на вот этот блок с приветствием:
Как вывести блок-приветствие на главной странице сайта

Стандартными средствами WordPress вывести этот текст невозможно, поэтому придётся править файлы темы.

В общем, это текст, содержащий ключевые слова для поисковых систем, по которым можно продвигать главную страницу вашего сайта. Если такого текста не сайте нет, то возникает проблема с продвижением. Поисковые роботы будут использовать лишь общие теги TITLE и H1, плюс ещё всякие фразы, вырванные из контекста.

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

Задача

Прописать свой тег H1 и текстовое описание для главной страницы сайта в режиме вывода последних записей.

Решение

В моём случае для управления отображением главной страницы и контента в целом, используется файл content.php из директории темы. Поэтому открываем его и смотрим, что имеется:

if (is_category() && (!is_home() && !is_front_page())) {
    echo '<h1 class="entry-title">'.single_cat_title('', false).'</h1>';
    if (!is_paged() && category_description()) {
        echo category_description();
    }
}

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

Суть простая — если это страница рубрики и не домашняя страница — выводим текст, указанный в свойствах категории. Об этом я писал ранее, в заметке «Вывод META-данных для категорий».

Но опустим этот момент, давайте добавим туда условие для вывода описания на главной странице блога.

Для этого вставляем код перед закрывающей скобкой в инструкции выше (если она у вас есть), либо вставляем в самый верх файла content.php, чтобы получилось нечто следующее:

else if (is_home() && !is_paged()) {
    echo '<h1 class="entry-title">Название главной страницы</h1>';
    echo '<p>Первый абзац описания</p>';
    echo '<p>Второй абзац описания</p>';
}

Это означает, что если это главная страница и не используется постраничная навигация — выводим текстовый блок в абзацах и с заголовком H1.

У меня это получается следующим образом:

if (is_category() && (!is_home() && !is_front_page())) {
    echo '<h1 class="entry-title">'.single_cat_title('', false).'</h1>';
    if (!is_paged() && category_description()) {
        echo category_description();
    }

    if ( function_exists( 'bcn_display' ) ) {
        bcn_display();
    }

    echo '<hr />';
} else if (is_home() && !is_paged()) {
    echo '<h1 class="entry-title">Авторский блог программиста-фрилансера</h1>';
?>
    <p>Я, Александр Грузов, рад приветствовать вас на своем блоге gruz0.ru!</p>
    <p>Если вы хотите заниматься фрилансом, мечтаете создать хороший сайт своими руками, либо стремитесь  найти се
    <p>У меня на блоге для вас представлено много интересной и полезной информации, в том числе статьи, видео урок
    <p>Основные темы блога – это фриланс, самостоятельное создание сайтов на CMS WordPress, бизнес в интернете и,
    <p>Если вам интересны данные темы – <a href="http://gruz0.ru/podpiska/" target="_blank">подписывайтесь на блог
    <hr />
    <?php
}

Вот именно этот код выводит текст на главной странице моего сайта.

Для каждой конкретной темы будет использоваться свой код, я привожу лишь общий вид и как это используется на моём блоге. Если возникают проблемы — приводите код своего файла content.php в комментариях, будем разбираться вместе :-)

Кроме этого, вам стоит помнить о дополнительной правке header.php, чтобы тег H1 выводился лишь один раз на главной странице, иначе произойдёт очень неприятный баг — тег задублируется, первый выведет название вашего сайта, а второй — указанный текст из кода выше.

Но вы можете обойти это и не заморачиваться, используя тег H2, вместо H1 при выводе текста в приведённом выше коде.

Уважаемые друзья! Если у вас не получилось сделать это с кодом из статьи, прошу прикладывать весь ваш код не в самом комментарии, а загружать его на сайт http://pastebin.com/, а затем уже ссылку вставлять в комментарии. Так вы облегчите мне работу по чтению неоформленного кода. Благодарю за внимание! :-)

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Комментарии

  • http://pastebin.com/igPDzfn0
    не могу понять куда вставить.
    вот код, который (как я думаю) отвечает за вывод главной

  • Здравствуйте. Александр.
    К сожалению,мучаюсь с затрагиваемой темой в Вашей статье уже довольно-таки давно,кучу статей на эту тему перечитал,но решить задачу так и не получилось.
    С вашим кодом у меня тоже-никак, а хотелось бы. Если Вас не затруднит может подмогнете?
    Вот начало моего кода в ontent.php:

    Последние записи

    < ?php if (have_posts()) : ?>
    < ?php $post = $posts[0]; // Hack. Set $post so that the_date() works. ?>

    < ?php if (is_category() || is_search()) { ?>
    < ?php the_breadcrumb(); ?>

    < ?php } elseif (is_tag()) { ?> /» title=»Главная»> Главная / Архив тега «< ?php single_tag_title(); ?>«
    < ?php } elseif (is_day()) { ?> /» title=»Главная»>Главная / Архив дня
    < ?php } elseif (is_month()) { ?> /» title=»Главная»>Главная / Архив: < ?php the_time('F Y'); ?> года
    < ?php } elseif (is_year()) { ?> /» title=»Главная»>Главная / Архив года
    < ?php } elseif (isset($_GET['paged']) && !empty($_GET['paged'])) { ?>Архивы
    < ?php } ?>

    < ?php while (have_posts()) : the_post(); ?>

    Буду Вам очень признателен за помощь.

    • Здравствуйте, Сергей.
      Загрузите ваш код на сайт pastebin.com и приложите ссылку сюда. В последнее время комментарии в блоге работают через раз и код попросту не отображается.

  • Здравствуйте! Буду благодарна, если сможете помочь.
    У меня главная — это index.php. На сайте всегда три колонки. Хочу, чтобы на главной, в правой колонке, выводился только один пост, над ним — текст. В код лезть боюсь — не настолько хорошо еще его знаю…

    < ?php $args = array( 'category_name' => 'featured-big',
    'post_type' => 'post',
    'posts_per_page' => 2,
    'paged' => ( get_query_var('paged') ? get_query_var('paged') : 1),
    );
    query_posts($args);
    while (have_posts()) : the_post(); ?>

    ">< ?php the_title(); //echo substr(get_the_title(),0,85); ?>

    < ?php if ( has_post_thumbnail() ) { ?> ">< ?php the_post_thumbnail('featured-big'); ?> < ?php } else { ?> "> < ?php } ?>

    < ?php endwhile; ?>

    < ?php wp_pagenavi(); ?>

    < ?php wp_reset_query(); ?>

  • Здравствуйте, у меня описание категорий в файле темы index.
    Никак не могу сообразить, может вы подскажите как мне условие прописать.
    Вот мой код:

    < ?php get_header(); ?>

    < ?php print category_description(); ?>

    < ?php if (have_posts()) : ?>

    < ?php while (have_posts()) : the_post(); ?>

    < ?php the_time('M') ?> < ?php the_time('d') ?>

    ,где

    < ?php print category_description(); ?> это условия для вывода описаний категорий-рубрик
  • Здравствуйте! Наконец-то я нашла статью о своей проблеме. Раньше главная была статическая, Сейчас сменила дизайн и на главной выводятся последние записи. Н1 отсутствует, никак не могу его прописать, чтобы был Только для главной. Прочитала статью, но у меня файла content.php -нет. Что делать?

    • Здравствуйте, Юлия!
      В вашем случае будет файл index.php, попробуйте начать с него.
      А что вы хотите в H1 разместить? Название блога? Убедитесь, чтобы не было дублирования, обычно бывает в темах такое, что H1 используется и в шапке сайта (название + описание), и в ссылке на каждую запись. Такое не допустимо.

      • В H1 хочу разместить ключевик, по которому буду продвигать главную страницу. Н1 в постах один, тут все в порядке.
        Все, вставила в файл index.php просто теги

        и все получилось, надо только стили отрегулировать. На остальных страничках, заголовок не дублируется. Спасибо Большое за подсказку!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: