Архив рубрики: WordPress

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

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

Реализация постраничной навигации без плагина

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

Первое что нужно сделать — вставить в файл functions.php код функции, чтобы не запутаться и не совершить ошибок, вставляйте код сразу после тега <?php

function wp_corenavi() {

  global $wp_query, $wp_rewrite;

  $pages = '';

  $max = $wp_query->max_num_pages;

  if (!$current = get_query_var('paged')) $current = 1;

  $a['base'] = str_replace(999999999, '%#%', get_pagenum_link(999999999));

  $a['total'] = $max;

  $a['current'] = $current;



  $total = 1; //1 - выводить текст "Страница N из N", 0 - не выводить

  $a['mid_size'] = 5; //сколько ссылок показывать слева и справа от текущей

  $a['end_size'] = 1; //сколько ссылок показывать в начале и в конце

  $a['prev_text'] = '«'; //текст ссылки "Предыдущая страница"

  $a['next_text'] = '»'; //текст ссылки "Следующая страница"



  if ($max > 1) echo '

';

}


Против некоторых полей, Вы можете видеть пояснения на русском, поэтому на свое усмотрение можете поменять эти настройки.

Далее нужно на страницах, где требуется вывод постраничной навигации (архивы, поиск, главная) установить код:

<!--?php if (function_exists('wp_corenavi')) wp_corenavi(); ?-->

На картинке ниже, Вы можете посмотреть куда нужно вставлять код в файле:

Постраничная навигация без плагина - место добавления кода

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

      bottom-red   bottom-blue   

Сохраните себе в двух подходящих цветах. Одна кнопка будет для активной страницы, а другая для всех остальных.

В файл style.css нужно добавить следующий код:

.navigation {

text-align:center; margin:30px 0;

}

a.page-numbers {

background:url(images/act_nav.png) no-repeat; width:25px; height:25px; display: inline-block; padding:5px 0 0 0; font-weight:bold;

}

a:hover.page-numbers{

background:url(images/activ_nav.png) no-repeat; color:#fff; text-decoration:none;

}

span.page-numbers.current {

background:url(images/activ_nav.png) no-repeat; color:#fff; width:25px; height:25px; display: inline-block; padding:5px 0 0 0; font-weight:bold;

}

Важно правильно указать путь до картинок постраничной навигации на хостинге! Картинки нужно загружать в папку с темой, которая находится по такому адресу public_html/wp-content/themes/тема/images

Также, не ошибитесь с указанием названия картинки.

Установка плагина WP-PageNavi

  1. Скачиваем плагин WP-PageNavi на русском языке с сайта wordpress.org
  2. В админ панели Вашего блога, в меню слева выбирайте Плагины — Добавить новый. Далее переходите на вкладку Загрузка. Нажимаете Обзор… и указывайте путь к архиву с плагином на компьютере. После этого нажимайте Установить. После того, как плагин будет загружен, нажмите Активировать плагин.
  3. Для отображения кнопок навигации под страницами, необходимо добавить следующий код:

    <?php wp_pagenavi(); ?>

    Данный код добавляется в те файлы шаблона, которые отвечают за отображение страниц архива(arhive.php), поиска (search.php) и главной стараницы — index.php.
  4. Раньше у Вас на сайте была установлена навигация в виде: Следующая страница, Предыдущая. Необходимо заменить код, который отвечает за отображение этой навигации. Откройте файл с кодом, например, arhive.php нажмите CTRL+F на клавиатуре и введите в поиск внизу фразу navigation.

  5. Найдите фрагмент кода, который выглядит следующим образом <div class="navigation"> ... <div class="alignright">...</div> и замените его указанным выше кодом.
  6. Сделайте аналогичную замену и на оставшихся страницах.

Если Вы сделали все правильно, то перейдя в архив записей, Вы увидите внизу строку постраничной навигации.

На этом установка плагина WP-PageNavi завершена. Теперь Ваш блог стал еще более удобным для Ваших посетителей.

Вот собственно и все. Надеюсь у Вас не возникнет проблем с настройкой.



2013-01-10T08:53:03
Блог на WordPress

Как составить правильный robots.txt для блога на WordPress

Здравствуйте, уважаемые посетители блога! В этой статье я расскажу о том, как создать правильный robots.txt для WordPress. Но сначала давайте разберемся зачем нужно создавать файл robots.txt, и можно ли обойтись без него?

Зачем нужен файл Роботс?

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

В файле robots.txt как раз и указывается какие разделы блога поисковому роботу нужно индексировать, а какие нет. Также, можно запретить индексацию определенных служебных каталогов.

Как показала практика, за два года многое поменялось. Эта статья была написала в июле 2012 года, а то текст, который Вы читаете сейчас и его продолжение ниже, я написала в июле 2014 года. Собственно, а что поменялось?

Как было раньше. Через файл роботс мы давали указание поисковым роботам не забирать в свою базу определенные страницы сайта. Но теперь, в частности Google, не обращает внимания на указания (директивы) в robots.txt. Не смотря на то, что в robots txt стоит запрет индексации категорий, архивов, древовидных комментариев, а робот все равно их заносит в свою базу.

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

Для wordpress robots.txt не такой, как для других движков. И в первую очередь это связано с особенностями самого движка WordPress. В WordPress есть проблема с дублями, которые создают древовидные комментарии. Решение этой проблемы я описывала в статье https://inetsovety.ru/kak-ubrat-dubli-stranits-replytocom/

Как создать правильный robots.txt для блога на WordPress

В файле роботс мы разрешаем роботу заходить на страницы с дублями, но запрещаем с помощью мета тега:

<meta name='robots' content='noindex,follow' />

Для абсолютно всех страниц сайта мы не можем добавить этот тег, только для страниц пагинации (постраничной навигации). Остальные дубли мы исключаем с помощью редиректа. Внимательно изучите статью о дублях древовидных комментариев и примените ее, прежде чем ставить себе тот роботс, который я дам ниже. Если Вы поставите на свой блог этот роботс, но не настроите редиректы и мета теги, то рискуете получить  фильтры в поисковиках. Поэтому выполняйте все рекомендации по пунктам. Не поленитесь создать резервные копии файлов темы, файлов .htaccess и robots.txt.

  1.  Вносим правки в файл .htaccess, настраивая редиректы. Можете, либо скопировать и вставить этот код, либо взять готовый файл из предыдущей статьи.
    # BEGIN WordPress

    <IfModule mod_rewrite.c>

    RewriteEngine On

    RewriteBase /

    RewriteCond %{QUERY_STRING} ^replytocom= [NC]

    RewriteRule (.*) $1? [R=301,L]

    RewriteRule (.+)/feed /$1 [R=301,L]

    RewriteRule (.+)/comments /$1 [R=301,L]

    RewriteRule (.+)/comment-page /$1 [R=301,L]

    RewriteRule (.+)/trackback /$1 [R=301,L]

    RewriteRule (.+)/attachment /$1 [R=301,L]

    RewriteCond %{QUERY_STRING} ^attachment_id= [NC]

    RewriteRule (.*) $1? [R=301,L]

    RewriteRule ^index.php$ - [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /index.php [L]

    </IfModule>

     

    # END WordPress

  2. Добавляем мета тег для постраничной навигации в файл function.php. Код добавляем сразу после строчки <?php:
    	function my_meta_noindex () {

    		if (

    			is_paged() 

    		) {echo "".'<meta name="robots" content="noindex,nofollow" />'."n";}

    	}

     

    add_action('wp_head', 'my_meta_noindex', 3);

  3. Проверьте, что на страницах постраничной навигации, в рубриках в исходном коде страницы присутствует код
    <meta name='robots' content='noindex,follow' />

    Для этого нажмите CTRL+U (одновременно нажмите на две кнопки на клавиатуре CTRL и U). Чтобы не просматривать сотни строчек кода, снова одновременно нажимаете CTRL и F, на странице с кодом. Внизу слева появится форма поиска по странице. В нее вставляйте meta name и жмите поиск.

  4. Ставим запрет на индексацию нежелательных страниц в плагине All in One Seo Pack:правильный robots.txt и настройки индексации в сео плагине All in One Seo Pack
  5. А вот теперь, когда предыдущие 4 пункта выполнены, ставьте robots.txt, который не запрещает роботам ходит по дублированным страницам. По этой ссылке Вы можете скачать готовый правильный robots.txt для WordPress, который использую я и много других людей — ссылка на скачивание.

После того, как Вы скачали архив с файлом. Вам нужно в самом конце файла поменять сайт.ru на адрес своего сайта. Сделать это нужно в этих строках:

Host: сайт.ru

Sitemap: http://сайт.ru/sitemap.xml.gz

Sitemap: http://сайт.ru/sitemap.xml

Две последние строки указываю поисковому роботу адрес карты сайта.

После того, как Вы изменили в файле robots.txt установили адрес своего сайта, загрузите его на хостинг через ftp клиент FileZilla. Если у Вас возник вопрос, а куда его загружать? Файл robots txt должен находится в основной папке, рядом в папками wp-content, wp-includes.

А в данном видео, Вы более детально сможете узнать о директивах, которые прописываются в robots.txt: