Master-X
Форум | Новости | Статьи
Главная » Форум » Блоги и Социальные сети » 
Тема: Как можно поиск по тегам реализовать ?
цитата
26/12/13 в 12:16
 suhov
пытаюсь реализовать на вордпрессе что то типа дьявольски упрощенного поиска по тегам наподобии такого
<form name="travel" action="сайт.ком" method="get">
<input type="checkbox" name="tag" value="тег1" checked="checked" />раз<br />
<input type="checkbox" name="tag" value="тег2" />два<br />
<input type="checkbox" name="tag" value="тег3" />три<br />
<input type="submit" value="OK" />
<input type="reset" value="Reset" />
</form>
ну то есть поставил галочки возле нужных меток чик и ему выдало то что нужно

но оно выдает запрос в таком формате
хттп//сайт.сом//?tag=тег1&тег2
то есть выдает все посты в которых встречается либо тот либо другой тег

а нужно что бы выдавало в таком формате
хттп//сайт.сом//?tag=тег1+тег2
то есть что бы выдавались посты в которых есть только оба тега (если только один из них то нафиг надо)
как такое можно реализовать ?
цитата
26/12/13 в 13:17
 Yacc
1. Сделаем в папке темы новый шаблон страницы:

bar.php
<?php

/*
Template Name: bar
*/

get_header();

$tags = array();

if (isset($_GET['tags']) and count($_GET['tags']) > 0) {
   $tags = $_GET['tags'];
}

?>

<form name="travel" action="foo">
   <input type="checkbox" name="tags[1]" value="tag1" <?php checked(true, isset($tags[1])); ?> />tag1<br />
   <input type="checkbox" name="tags[2]" value="tag2" <?php checked(true, isset($tags[2])); ?> />tag2<br />
   <input type="submit" value="OK" />
</form>

<hr/>

<?php

if (count($tags) > 0) {

   $query = new WP_Query(array('tag' => implode('+', $tags)));

   if ($query->have_posts() ) {

      while ($query->have_posts() ) {

         $query->the_post();
      ?>

         <a href="<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a><br/>

      <?php
      }
   }
   else {
      echo 'Nothing found';
      get_search_form();
   }
}

get_footer();
2. Сделаем в админке новую страницу, назовем ее foo и в качестве шаблона страницы выберем bar.

3. Зайдем по адресу site.com/foo и порадуемся.

4. Доделаем шаблон bar, думая о валидации формы и санитизации параметров и перестаем беспокоиться.
цитата
27/12/13 в 11:34
 suhov
пасибо попробуем smail54.gif


Эта страница в полной версии