Создание Сайтов и их настройка

WordPress Как добавить форму поиска на сайт wordpress?

Как добавить форму поиска на сайт wordpress?

Приветствую, всех посетителей блога — SdelaemBlog.ru.  Ковырялся на днях в стандартной теме вордпресс и заметил один маленький, но все же недостаток. Он заключается в том, что форму поиска в шаблоне можно вывести только с помощью виджета в сайдбар. Но если я хочу ее установить, например, в шапку сайта? Ведь с помощью виджетов этого не сделаешь. Поэтому я решил рассказать, как добавить форму поиска по сайту wordpress?

Как добавить форму поиска на сайт wordpress?

Как подобрать нужное место в коде, с помощью браузера?

Итак, чтобы добавить форму в нужное место, достаточно подобрать желаемое место и вставить туда код формы. Чтобы подобрать место в самом коде темы, достаточно воспользоваться интернет-браузером от Google или другими. Допустим я пожелал увидеть форму в шапке ресурса, или как она еще зовется — в хэдере (header). Но как найти нужное место в самом коде? Именно для того, чтобы подобрать расположение, как раз пригодится веб-браузер.

Нужно открыть сайт в браузере и навести курсор на ориентировочное место, потом кликнуть правой кнопкой мыши и выбрать «просмотр кода элемента» (если вы используете Google Chrome). В остальных браузерах эта фраза звучит по другому, но смысл ее понятен.

Как посмотреть код шаблона с помощью браузера?

После нажатие, внизу страницы, вы увидите, что представляет из себя код шаблона (примерно так).

Как подобрать нужное место в коде, с помощью браузера?

Теперь, если навести курсор на любой из дивов (div) — на странице будет подсвечена область в окне браузера, которую использует данный конкретный div. Также, если кликнуть на стрелочку рядом с дивом — откроются другие элементы блока, которые заключены в этот div-блок и т.д.

Как я уже говорил, я хочу, чтобы поиск по сайту wordpress находился в шапке, то есть в div-блоке header. Теперь я знаю какой нужен div для вставки кода — остается только расположить код в нужном месте.

Как добавить форму поиска wordpress?

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

Для вставки, нужно открыть код самой темы wordpress и найти header. Находится он, как правило в файле header.php. Открыть его можно, либо в самой админке wordpress, либо с помощью редактора, например   Notepad++, вполне подойдет, для этого. Теперь нужно нажать комбинацию клавиш Ctrl+F и в поиск ввести название нужного блока, в моем случае — это header.

Как добавить форму поиска wordpress?

Нужный тег найден. Теперь нужно добавить код, после открывающего тега (<div id=»header»>) и перед закрывающим (/div). Чтобы это сделать, нужно вставить этот код внутрь блока div.

<form method="get" name="searchform" id="searchform" action="<?php bloginfo('siteurl')?>">
<input type="text" name="s" id="s" value="<?php echo wp_specialchars($s, 1); ?>"/>
<input id="btnSearch" type="submit" name="submit" value="<?php _e('Хочу найти'); ?>" />
</form>

После этого сохранить и проверить результат. Как видите поиск по сайту расположена там, где я и хотел. Если расположение и внешний вид вас не устроить, его можно поправить, с помощью файла стилей CSS (style.css).

Как добавить форму поиска wordpress?

Вот и все, что я хотел сегодня рассказать. Теперь форма поиска wordpress всегда будет расположена там, где нужно.

Удачи и до новых встреч, на страницах моего блога.

Расскажи друзьям:
Поделись ссылкой:
Комментарии
  1. Михаил Веб

    @ Роман:
    Я так понимаю проблема именно в том, что форма в одной форме, а кнопка в другой. А какой в этом смысл я не очень понял? С Enter нормально срабатывает, потому что вызывается кнопка из формы в которой вводите текст.
    Честно сказать подобного ни разу не пытался сделать, потому и что-то конкретное посоветовать не могу, увы.

    Ответить
  2. Роман

    @ Михаил Веб:
    У меня input text находится в одной форме, а input submit находится в другой form. Скорее всего именно из-за этого и проблема. Я когда пишу текст в область формы и нажимаю enter, все правильно ищется, а когда пишу текст в область формы и нажимаю кнопку найти, мне выдаются все записи((( Я думал, что может быть надо action задать двум формам одинаковый, но полазив по инет, не нашел какой либо action для wordpress… везде написано оставляйте область action пустой. К сожалению ссылку дать, не могу так как пока это на денвере.

    Ответить
  3. Михаил Веб

    @ Роман:
    Здравствуйте.
    К сожалению код не прошел, wordpress его удалил. Об этой проблеме я знаю, но когда смогу ее решить, не могу сказать :-(
    А в чем заключается не корректность работы кнопки? А лучше, если возможно, оставьте ссылку на страницу с проблемой.

    Ответить
  4. Роман

    Здравствуйте, подскажите пожалуйста, а можно реализовать нормальную работу поиска с таким кодом:

    Смысл в том, что у меня два рядом стоящих блока, и нужно чтобы область поиска была в одном, а кнопка во втором. Но при таком коде кнопка работает не корректно, а если ее заносить в одну form-у то все работает.

    Ответить
  5. Михаил Веб

    @ Андрей:
    Здравствуйте.
    Попробуйте добавить в файл function.php, функцию:

    function SearchFilter($query) {
        if ($query->is_search) {
    	$query->set('category__not_in','10'); //указываем ID исключаемых рубрик
        }
        return $query;
    }
    add_filter('pre_get_posts','SearchFilter');

    Чтобы вычеркнуть из поиска ту или иную рубрику добавьте в код ID необходимой рубрики. В коде-примере ID указан 10, его меняем на свой и все. Если необходимо указать несколько рубрик, укажите необходимые ID через запятую.

    Ответить
  6. Андрей

    Подскажите как закрыть от поиска одну из рубрик, заранее спасибо

    Ответить
  7. Валерий

    Михаил Веб пишет:

    @ Ольга: Можно сделать, чтобы поиск искал по заголовку поста. Вы это имели ввиду? Если да, то напишу небольшой пост об этом.

    Можно конечно!

    Ответить
  8. Михаил Веб

    @ Алексей:
    Не за что. Рад, что статья смогла помочь :-)

    Ответить
  9. Алексей

    Спасибо статья очень помогла.8):-)

    Ответить
  10. Михаил Веб

    @ Аня: Пожалуйста :-)

    Ответить
  11. Аня

    Из теории на практику =). C CSS разобралась и с кодом формы поиска тоже, так просто. Всё работает =).

    Михаил Вэб, Большое Спасибо!

    Ответить
  12. Михаил Веб

    @ Аня:
    Да, это возможно.
    В теме twentyten необходимо в файле header.php, перед строкой

    добавить код формы поиска.
    Ширину формы также можно менять.
    Если используете код формы из данной статьи, то чтобы указать ширину текстового поля, необходимо в файле style.css добавить селектор и указать в его свойствах ширину:

    #s{
    width: 100px;
    }

    Значение 100px может быть любым.
    Чтобы изменить ширину кнопки, при использовании кода из статьи, необходимо прописать:

    #btnSearch{
    width:60px;
    }

    Значение 60px, также может быть любым.
    Если необходимо указать высоту одного из этих элементов используйте свойство height. Например:

    #btnSearch{
    width:60px;
    height:20px;
    }

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

    Ответить
  13. Аня

    Михаил Веб, а есть ли возможность добавить форму поиска в панель навигации?

    Есть желание установить этот поиск в панель, у меня она выглядит так:

    Главная | Об Авторе | Архив | Контакты |

    Хочу сделать так:

    Главная | Об Авторе | Архив | Контакты | «Форма поиска»

    Использую шаблон twentyten. Михаил Веб, а размер(длину) формы можно менять?

    Спасибо, с уважением!

    Ответить
  14. Михаил Веб

    @ yura: Ответил на почту…

    Ответить
  15. yura

    Код полностью не отправляется, не знаю почему. Я скопировал searchform.php c хостинга из своей темы, заменил свои две строчки на ваши две, которые между и , верхняя строка осталась прежней. Она почему-то не отправилась Вам, вот она: только нет name=»searchform» . Потом новый searchform.php загрузил с заменой на хостинг по FTP . А вот плагины кеширования не использую. А какой плагин?

    Ответить
  16. Михаил Веб

    @ yura: Все должно работать.
    А как код выглядит полностью?
    Или это весь код?
    Код из статьи пробовали?
    Куда вставляете (какой файл темы?)
    Плагины кеширования используете?

    Ответить
  17. yura

    пока не помогло. Исправил файл, перебросил на хостинг, но всё по старому.

    Ответить
  18. yura

    это первая строчка, вставляю как Вы сказали, но не получается.

    Ответить
  19. Михаил Веб

    @ yura: Обратите внимание на форматирование кавычек. Попробуйте так:

    
    
    Ответить
  20. yura

    Не отображается поиск вообще, пусто. Я где-то читал, что в коде главной страницы прописываются новые названия классов, которые потом надо прописать в своём файле формы, а может и нет. Вы проффи, Вы знаете. Помогите.

    <input class="search-txt" type="text" name="s" id="s" value="» />
    <input class="search-btn" type="image" src="/images/poick.jpg» />

    Ответить

Нажимая на кнопку "Комментировать" Вы согласшаетесь с условиями политики конфиденциальности

Проверка комментариев включена. Прежде чем Ваши комментарии будут опубликованы пройдет какое-то время.

Навигация по статье
Тег more — как редактировать ссылку читать далее на wordpress

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

Тег more — как редактировать ссылку читать далее на wordpress

Как включить смайлики wordpress и заменить на свои?

Сегодня не увидишь сайтов, которые не использовали бы на своих страницах смайлы. Ведь именно эти эмоциональные картинки добавляют прилив динамики на сайт и посетители могут высказать свои эмоции, которые довольно сложно передать словами. Но не каждый, особенно начинающий, вебмастер знает, что смайлики есть даже на движке wordpress. Просто для их вывода нужно добавить небольшой php-код…

Как включить смайлики wordpress и заменить на свои?