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


Пролог или как я становился веб мастером.
Созданные мною сайты изначально работали на чистом html.  Времена были тяжелые, денег на платный хостинг не было, вот и приходилось осваивать бесплатные сервисы от "народа"до 1GB.RU.  Монетизировать сайт состоящий из отдельных html страничек очень не просто. Особенно если их у тебя на сайте 1000 и более.

Если с биржами ссылок они ещё кое-как справлялись, то с баннерной и контекстной рекламой уже были проблемы. Попробуйте разместить код на 1500 страницах. Для этого потребуется открыть, отредактировать, сохранить и отправить на сервер все 1500 страниц. А если вы завтра захотите поменять рекламный блок и поставить рекламу от другого рекламодателя? Это месяцы упорного труда.  Но время шло, сайты начали приносить небольшую копеечку и я уже смог позволить себе любой хостинг со всеми наворотами.

  Всё это к чему? Сайты мои уже наростили определенный Tиц и PR, и просто взять, и перенести контент со старого html сайта на CMS — значит потерять все показатели, трафик и придется всё начинать с начала. Ведь по сути сайт будет новый. Адреса страниц изменятся, и, до свидания.


Вот здесь я столкнулся с проблемой номер раз. Как оставить на сайте старые адреса страниц. Какую выбрать CMS чтобы задумку реализовать. Выручил WordPress.  Для этого требуется всего лишь установить плагин — .html on PAGES —   и в параметрах "постоянные ссылки" выбрать опцию "произвольно" и вставить вот этот код — /%postname%.html -. После этого, при создании страницы или поста, вы сами можете набирать любой адрес страницы. Теперь я смог перенести сайт на WordPress и сохранить показатели невредимыми.

 

Как вывести ленту новостей из любой рубрики на статическую главную страницу в WordPress.


Посколько главная страница сайта была статическая и на ней был уже какой-то контент, фото, ссылки на внутренние страницы сайта, то пришлось и в WordPress устанавливать главную страницу статическую. Иначе множество страниц просто бы поменяли уровень вложения, что привело бы к нежелательным последствиям.
Но, в дополнение к уже имеющемуся на главной статической странице, хотелось добавить на неё ленту новостей из других рубрик.  Оказалось это делом не простым. Гуглил три дняи три ночи. Вопросы по этой теме есть, конкретных ответов попросту нет. А то, что предлагают гуру  php — понятно только им самим, но ни как человеку не имеющему ни малейшего в этом php понятия. Садиться и изучать основы php уже поздно. Три дня поисков все же принесли результат.


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


Шаг первый.
Вам необходимо создать отдельный шаблон для главной страницы.
В папке вашей темы  ( wp-content/ themes/ваша тема )находите файл — Шаблон страницы —(page.php)
Копируете его в другое место и переименовываете его как вам нравится. Предположим в — glavnaya.php  —


Шаг второй.
Редактируем новый файл шаблона страницы glavnaya.php.
Открывайте его текстовым редактором Notepad++ или подобным продвинутым редактором. В противном случае php код у вас может поломаться.


1. В самом начале  страницы вставляете следующий код:
<?php
/*
Template Name: glavnaya
*/
?>
Где — glavnaya — имя редактируемого вами файла.

 

2.  После строки — get_template_part('content', 'page'); — вставляете следующий код:
if ( have_posts() ) : // Если вообще есть постовые…
query_posts('cat=75&posts_per_page=7');   // — включаем только записи из рубрик с ID 75.
      while (have_posts()) : the_post(); // …тогда запускаем цикл обхода материалов блога. ?>
        <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <!— Идетификатор + класс записи —>
          <b class="title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></b> <!— Ссылка на материал + заголовок —>
                    <?php the_excerpt(); ?> <!— Цитата/вырезка —>
             </div><?php
      endwhile; // Конец цикла.
    endif;

3.  Сохраняете и  заливаете его в папку с темой, туда, где вы его и брали. Это и будет файл шаблона вашей главной страницы.  

4. Открываете вашу главную, статическую  страницу в редакторе через консоль WordPress и атрибутах страницы, справа, задаете ей шаблон — glavnaya -.
 Теперь весь ранее созданный контент и то, что вы еще будете на страницу добавлять будет размещаться сверху, а анонсы новостей будут выводиться ниже.
В приведенном примере я вывожу новости из категории 75 по 7 анонсов.
Всё это создавалось мною методом подстановок, удаления кусков кода и всего, что выдавало ошибки при сохранении файла. Как я ранее уже писал, из всего, что удалось найти, ни один код, в чистом виде не работал. Может это только у меня, судить не берусь.
Поскольку я не программист, то все возникшие  у вас вопросы задавайте Google.  В код можно добавить вызов даты, тегов, рубрики. Потерял я этот кусок кода.
А это код главной статической страницы с внедренным в него кодом вывода ленты новостей из определенной рубрики.

 

<?php
/*
Template Name: glavnaya
*/
?>
<?php get_header(); ?>
<div class="art-content-layout">
    <div class="art-content-layout-row">
        <div class="art-layout-cell art-sidebar1">
          <?php get_sidebar('default'); ?>
          <div class="cleared"></div>
        </div>
        <div class="art-layout-cell art-content">
            <?php get_sidebar('top'); ?>
                        <?php
                if(have_posts()) {
                    
                    /* Start the Loop */
                    while (have_posts()) {
                        the_post();
                        get_template_part('content', 'page');
                    }
if ( have_posts() ) : // Если вообще есть постовые…
query_posts('cat=75&posts_per_page=7');   // — включаем только записи из рубрик с ID 75.
      while (have_posts()) : the_post(); // …тогда запускаем цикл обхода материалов блога. ?>
        <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <!— Идетификатор + класс записи —>
          <b class="title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></b> <!— Ссылка на материал + заголовок —>
          
          <?php the_excerpt(); ?> <!— Цитата/вырезка —>
             </div><?php
      endwhile; // Конец цикла.
    endif;
    
            } else {
                
                     theme_404_content();
                    
                }
            ?>
            <?php get_sidebar('bottom'); ?>
          <div class="cleared"></div>
        </div>
    </div>
</div>
<div class="cleared"></div>
<?php get_footer(); ?>


На сайте есть:

Эта запись защищена паролем. Введите пароль, чтобы посмотреть комментарии.