Рад вновь приветствовать всех читателей SEO-Mayak.com! В моей недавней статье мы уже рассматривали тему, как скрывать страницы с помощью плагина Advanced Category Excluder
Сегодня мы поучимся скрывать страницы и категории без плагина, именно скрывать — делать их невидимыми для глаз посетителей с помощью специально кода.
Я уже не раз высказывался по поводу плагинов, хочу лишь немного дополнить. Если Вы совершенно ни чего не понимаете в языках программирования и не читаете обыкновенный HTML и CSS не говоря уже о скриптах, то наверное на начальном этапе будет оправданным использование плагинов для увеличения функциональности блога.
А представьте, в один прекрасный день количество уникальных посетителей у вас перевалит за 1000 и ваш блог заметно замедлит перелистывание страниц , а если будет 5 тысяч «уников» и к примеру 500 статей, то Ваш блог будет изнурять посетителей ожиданием, а ни кто, как известно, не любит ждать. Поисковики в свою очередь начнут отодвигать такой блог от греха подальше.
По-этому использование всевозможных скриптов и функций, которые заменяют плагины очень даже разумно и правильно!
На моем кулинарном блоге DomMenu.ru достаточно невидимых страниц и все они скрыты с применением команды — exclude. Если вы читали мою прошлую статью, плагин для скрытия страниц, который мы там рассматривали назывался Advanced Category Excluder. Как видите последнее слово в плагине и наша команда exclude очень схожи.
Exclude в переводе означает — скрыть, утаить. С помощью этого слова можно скрыть не только страницу, но и любую категорию из видимых мест блога, это нам и надо.
Как же это осуществить? На самом деле сложного ни чего нет.
Исключаем страницы
Открываем файл который отвечает за шапку сайта header.php, который находится -> wp-content/themes/Название темы/header.php
Находим в нем такую строчку:
<?php wp_list_pages( 'exclude=710,578,632&depth=1&sort_column= menu_order&title_li=' ); ?>
У всех эта строчка может отличатся, но это нормально. Я ниже напишу и разберу по полочкам кусочек из этого кода:
exclude=710,578,632&
Это и есть наша команда на исключение страниц, где:
exclude — команда,
710,578,632 — ID исключаемых страниц через запятую. Если Вы вдруг не знаете что такое ID и с чем его едят, то читайте статью — «Как узнать ID страницы, категории или записи»
& — Разделитель
В некоторых шаблонах бывает,что эта команда уже прописана в строчке, но без указания ID страниц, т.е. пустая команда, встречалось мне такое. В таком случаи надо просто добавить ID, а не дублировать команду.
Если вы вставляете команду exclude в конец строчки, то разделитель & должен стоять спереди, вот так:
&exclude=710,578,632
Надеюсь понятно…
Но что делать тем веб-мастерам, у которых страницы выводятся функцией:
<?php art_menu_items(); ?>
В современных шаблонах это функция используется довольно часто и поэтому давайте и с ней поработаем.
С помощью бесплатного текстового редактора Notepad++ отрываем для редактирования файл functions.php, который находиться в папке с вашей темой и ищем функцию с одноименным названием. Выглядит она так:
function art_menu_items() { $homeMenuItemCaption = <<<EOD Главная EOD; $showHomeMenuItem = true; $isHomeSelected = null; if ('page' == get_option('show_on_front')) { $pageOnFront = get_option('page_on_front'); $pageForPosts = get_option('page_for_posts'); if ($pageOnFront) { $page = & get_post($pageOnFront); if (null != $page) $homeMenuItemCaption = apply_filters('the_title', $page->post_title); $isHomeSelected = is_page($page->ID); } elseif (!$pageOnFront && $pageForPosts) { $page = & get_post($pageForPosts); if (null != $page) $homeMenuItemCaption = apply_filters('the_title', $page->post_title); } } if (null === $isHomeSelected) $isHomeSelected = is_home(); if (true === $showHomeMenuItem || 'page' == get_option('show_on_front')) echo '<li><a' . ($isHomeSelected ? ' class="active"' : '') . ' href="' . get_option('home') . '"><span><span>' . $homeMenuItemCaption . '</span></span></a></li>'; add_action('get_pages', 'art_header_page_list_filter'); add_action('wp_list_pages', 'art_list_pages_filter'); wp_list_pages('title_li='); remove_action('wp_list_pages', 'art_list_pages_filter'); remove_action('get_pages', 'art_header_page_list_filter'); }
В разных шаблонах функция может быть прописана по разному, но это не страшно. Нам понадобиться строчка, расположенная ближе к концу::
wp_list_pages('title_li=');
Где надо вставить, вышеупомянутую команду exclude, с ID страниц, которае надо скрыть. Например:
wp_list_pages('exclude=710,578,632&title_li=');
Сложного ничего нет. Идем дальше.
Исключаем категории
Теперь, как исключить категорию из видимых зон блога.
Во многих шаблонах категории отображаются в 2 местах- это шапка сайта (header.php) и сайдбар (sidebar.php), иногда бывают еще в подвале (foote.phpr).
Расположены все эти файлы в папке с Вашей темой (шаблоном), путь -> wp-content/themes/Название темы/Нужный файл.php
Находим там что-то похожее на такую строчку:
<?php wp_list_categories( 'depth=1&hide_empty=0&orderby=name&order&exclude=1&= ASC&title_li=' ); ?>
На этом примере команда exclude расположена в центре кода
&exclude=1&
И поэтому она находится между разделителей &
Вот такой код, отвечающий за вывод категорий находится в моем файле sidebar.php:
<?php wp_list_categories( 'exclude=1&hide_empty=0&show_count=1&title_li=' ); ?>
Во всех случаях команда exclude прекрасно работает и делает совершенно ненужным использование плагина.
Кстати, у плагина Advanced Category Excluder есть один недостаток. Он не работает на странице с ошибкой 404!
Что за страшное название — «Страница с ошибкой 404»? Вы точно узнаете, если подпишитесь на обновления блога!
До встречи!
С уважением, Виталий Кириллов
Благодаря вышеописанному удалось успешно избавиться от плагина, исключающего категории от посетителей и спрятать страничку, предназначенную только для посетителя, оставившего свой самый первый комментарий на сайте. Сайтик немного полегчал, что надеюсь скажется на скорости его загрузки. Вообще, методы позволяющие исключить тот или иной плагин мне больше всего нравятся. Только не все подходят. а это очень простой и действенный. Спасибо!
И вам спасибо Наталья! Буду стараться и дальше публиковать актуальные и интересные статьи.
Я поначалу так увлеклась плагинами, что понаставила их аж 64 штуки. Сейчас осталось их у меня менее 20. И работаю над тем, чтобы убрать еще 1-2. Замедляют они работу сайта. Чем их меньше, тем лучше.
Анна, рад снова Вас видеть на моем блоге! Некоторые плагины заменить увы пока сложно и я постоянно работаю над поиском «обходных вариантов». Хочу заметить, что плагины далеко не самый злейший враг для скорости загрузки сайта. Ожидайте свежих статей.
Не успеваю и статьи ставить, и что-то серьезное делать на блоге. С плагинами проще все делать, но они замедляют работу. Нужно искать оптимальное решение.
В очередной раз воспользовалась данным постом и закрыла страницу поиска. Так что пользуюсь публикациями сайта вместо шпаргалок 😉 Очень удобно!
Прекрасная идея — страница появляется как по волшебству!
Спрятать страницу оказывается не так уж и просто если ты новичок вроде меня.
Я бы уже и бросила это дело — ну не получается и все тут……
Но вот профессионализм и мастерство Виталия сделали свое дело!
И теперь — добро пожаловать ко мне на сайт — все как нужно.
Страничка спрятана.
Спасибо Виталий!
Искренне желаю вам успехов1
С ув. Т.С
Пожалуйста Татьяна. Хотел уточнить, для остальных, что помогаю я справляться с проблемами только подписчикам блога!
Спасибо, у меня все получилось, страничку спрятала и даже без плагина. Супер! Спасибо за статью!
Пожалуйста Елена!
Виталий, сделала страницу, но скрыть ее с помощью плагина не удалось. Создается впечатление, что по какой-то причине плагины у меня не работают. Так как это не единственный плагин, так же перестали выводиться одинаковые статьи. Может дело в том, что шаблон такой?
Валентина, попробуйте обойтись без плагина как описано здесь /sozdanie-bloga/obxodimsya-bez-plaginov/kak-skryt-stranicu-ili-kategoriyu-bez-plagina.html
Поменяла шаблон, в новом шаблоне удалось скрыть страницы, но как только я вмешиваюсь в код, сайт пропадает. Опять менять шаблон?
Валентина, дело в том, что языки программирования не терпят ошибок. Если вы пропустите запятую и еще какой-нибудь символ, то сайт станет недоступен и шаблон тут не причем. Если Вы делаете по инструкции, то старайтесь копировать и вставлять коды полностью и внимательно читайте описание действий.
Я вставляю скопированный родной код, но сайт не реагирует, приходится писать на хост. В прошлой теме, меняла и переделывала не раз, шаблон себя так не вел. Сайт не пропадал. Думаю, что дело в шаблоне.
Не стану спорить.
Не получается ничего сделать ни с плагином, ни без плагина((( с плагином страница «Спасибо за комментарий» никуда не пропадает, так уныло и «висит» в шапке сайта, а без плагина вообще в теме не нахожу и близко тех строчек, которые Вы написали((( Что ж такое не везет и как с этим бороться?..последнее время каждый день упираюсь в недостатки своего шаблона…так, например, плагин про корректное отображение слова «комментарии-комментариев» тоже не работает…Вы, Виталий, знаете что-нибудь об этом?
Ольга, можно работать с любым шаблоном, просто надо его хорошо изучить. В файле functions.php вам надо найти что-то похожее на функцию «art-hmenu» и прописать в ней команду «exclude», как показано в статье.
Всем привет! Прочитал Вашу статью, она мне очень помогла скрыть у себя на блоге страницу. Облазил интернет, все дают подобные, но непонятные советы или вообще плагин предлагают установить. Вообщем статья хорошая!
Алексей, рад видеть Вас на блоге и спасибо за оценку моего скромного труда!
Уважаемый, Виталий!
Помогите без вас я никак не разберусь.
у меня большая нагрузка на сервер и я пытаюсь разобраться с плагинами, перенастраиваю их. Удалила плагин, который скрывал страницы. Пытаюсь их скрыть без плагина.
Но не найду строчки в тех шаблонах, что вы пишите.
строчку —
я нашла, она выглядит вот так:
ID); ?>
и нашла ее в Шаблон-е страницы (page.php)
Можно ли менять этот шаблон???
Если можно, то куда вставить ID-ы страниц???
Ольга, код не прошел. Заключайте код в теги [ php][ /php] (без пробелов), чтобы он нормально отображался.
Спасибо, очень подробно и понятно!
Уважаемый, Виталий! Я создала свои страницы без плагина: Спасибо за комментарий и Поиск по сайту (Яндекса). Хочу их закрыть.
Но У меня на Редактирование страницы есть Атрибуты страницы. в котором есть шаблоны для :
Карта сайта
Контакты
Подписаться
А на остальных пяти страницах вставлены: шаблоны «по умолчанию»
Что мне делать и как их закрыть??
Спасибо
Ольга, какие шаблоны, куда вставлены и почему вы их хотите закрыть?
Попробуйте объяснить еще раз!
Полезная статья и хорошая подача информации — спасибо.
А что мне делать , если ни в header.php? ни в functions.php нет wp_list_pages. Как мне спрятать страницу?
Николай, возможно у вас страницы выводятся функцией wp_page_menu?
Здравствуйте Виталий! Подскажите пожалуйста, а как скрыть страницу если у меня нет wp_list_pages в файле functions.php и функции арт_меню нет. Где нужно искать? Версия вордпресс 4.3
Антон, от версии WordPress это не зависит, а зависит от шаблона, а шаблоны все разные и в слепую я не могу сказать, где искать.
А как с индексацией спрятанной страницы, если на неё не ведёт никаких ссылок кроме скрытой?
Спасибо, обязательно попробую. Сейчас пока плагин для скрытия рубрики стоит, а я хочу от плагинов избавиться по максимуму.
Виталий, расширенный поиск через Total Commander в моей теме ни в одном из файлов не находит описанные вами слова. Смотрю в комментариях, не только у меня так. Как же в таком случае быть?
Юрий, структура современных шаблонов несколько отличается, и во многих из них задействованы иные функции и без специальных знаний трудно разобраться. Возможно в будущем я дополню статью или напишу новую, но в рамках комментария я не смогу всего объяснить.
Здравствуйте. Я плохо разбираюсь в технических моментах возможно я оставила комментарий не в тему, просто удалите его. Извините, за 2 дня обшарила весь интернет и ютуб, не нашла ответ на свой вопрос. Хочу понять как удалось скрыть рубрику вот на этом сайте
batumilife.РУУУУУУ
У у меня такой же шаблон. При клике на рубрику отображается Главная/Рубрика, а при клике на статью рубрика не отображаются, получается так Главная/Статья. Каким образом удалось скрыть рубрику? Смотрю таким образом, структура сайта реализована на многих блогах WordPress. Это что: плагин, скрипт или какое-то другое техническое решение?