Notice: Undefined variable: pattern_callback in /var/www/html/travelbloggers.ru/public_html/include/parser.php on line 814

1

Тема: Фильтр по категории и тегу

Привет! Я опять со своими вопросами.

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

Сжальтесь, расскажите, как сделали? Плагин появилася? Или код самописный?

Жизнь - это тоже путешествие
Life-trip.ru


Notice: Undefined variable: pattern_callback in /var/www/html/travelbloggers.ru/public_html/include/parser.php on line 814

2

Re: Фильтр по категории и тегу

Пока самописный... Оформить бы его в плагин...
Основан он на простой генерации ссылки.
Сначала берем базу, то есть адрес блога, потом добавляем к нему категорию, потом тег. И по клику на кнопку перенаправляем пользователя по этому адресу. Можно потестировать на нашем сайте и понять структуру построения ссылки.
Может найду время чтобы описать весь код, сделать его универсальным и выложить, но что-то не знаю, когда смогу... Если будут конкретные вопросы по коду, могу как-то помочь.

3

Re: Фильтр по категории и тегу

Ээ...моих знаний не хватает пока чтобы понять твой ответ, и сделать тоже самое :)

Я надеялся что это плагин, или просто кусок кода, который можно в sidebar.php вставить и оно все работать само будет.

Жизнь - это тоже путешествие
Life-trip.ru


Notice: Undefined variable: pattern_callback in /var/www/html/travelbloggers.ru/public_html/include/parser.php on line 814

4

Re: Фильтр по категории и тегу

Geleosan пишет:

Ээ...моих знаний не хватает пока чтобы понять твой ответ, и сделать тоже самое

перевожу с филлипинского:)
Аджей сказал, что он это сделал в коде Wordpress и он на 100% работает только на его блоге, но он постарается как будет время сделать плагин, который позволит любому поставить его на свой блог.

Прикольная функция, кстати:)

+1

5

Re: Фильтр по категории и тегу

Значит будем ждать, когда у Аджея появится время :)

Я честно говоря недоумеваю, почему в самом вордпрессе этой функции нет. Она реально улучшает поиск, и ее наличие очевидно.

Жизнь - это тоже путешествие
Life-trip.ru

6

Re: Фильтр по категории и тегу

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

Это идет в файл functions.php вашего шаблона внутри тегов <?php ?>:

function my_filter() {
global $categories;

function my_dropdown_cats($parent, $level){
global $categories;
foreach ($categories as $category) { if ($category->parent == $parent){
      $option .= '<option value="category/'.$category->category_nicename.'/">';
      for ($i=0;$i<$level;$i++){ 
     $option .="--";
    }
  $option .=" "; 
    $option .= $category->cat_name;
    $option .= ' ('.$category->category_count.')';
    $option .= '</option>';    
    $option .= my_dropdown_cats($category->cat_ID, $level+1);
    
    }
     
}
return $option;
}
?>
<script type="text/javascript"><!--
var category = '';
var tag1 = '';
var tag2 = '';
var tag = '';
var link = '<?php bloginfo('url'); ?>/';
function filbutton() {  
        if ( tag1 != "" )  { 
    tag = '?tag='+tag1;
    if ( tag2 != "" ) { tag = '?tag='+tag1+'+'+tag2;}
    
    } else {if ( tag2 != "" ) { tag = '?tag='+tag2;}}
        
    location.href = link+category+tag;    
    }    
--></script>

<!-- Виджет начинается здесь -->
 
Показать все записи из:
   <select name="category" id="cat" onchange='category=this.options[this.selectedIndex].value;'> 
 <option value="">Всех мест</option> 
 <?php

  $categories =  get_categories('pad_counts=1&hide_if_empty=0');
  
echo my_dropdown_cats(0, 0);  
         
 ?>
</select>
Ограничить тегом:
<select name="tag1" id="tag1" onchange='tag1=this.options[this.selectedIndex].value;'> 
 <option value="">С любым тегом</option> 
 <?php 
  $tags=get_tags();
  foreach ($tags as $tag1) {
      $option = '<option value="'.$tag1->slug.'">';
    $option .= $tag1->name;
    $option .= '</option>';
    $tag_options .= $option;
  }
  echo $tag_options;
 ?>
</select> 
<small><a id="addtag" style="cursor:pointer" onClick='document.getElementById("tag2").style.display="block";document.getElementById("addtag").style.display="none"; document.getElementById("hidetag").style.display="block";'>+Добавить еще один тег</a></small>
<div id="tag2" style="display:none">
И тегом:
<select name="tag2" onchange='tag2=this.options[this.selectedIndex].value; '> 
 <option value="">Без дополнительных тегов</option> 
 <?php 
  echo $tag_options;
  ?>
</select>
<small><a id="hidetag" style="cursor:pointer" onClick='document.getElementById("tag2").value=""; tag2=""; tag=""; document.getElementById("tag2").style.display="none";document.getElementById("addtag").style.display="block";'>-Убрать дополнительный тег</a></small></div>  
<input id="filter-button" class="button"  type="submit" onClick='filbutton();' value="Отфильтровать"/>
<?php
}   

Это вставляется в сайдбар в нужном месте или вставляется в php widget:

<div class="класс ваших виджетов"><h3>Фильтр:</h3>

<?php my_filter(); ?>

</div>

Код очень грязный, непонятный и ламерский, так что буду рад правкам и улучшениям  :)

7

Re: Фильтр по категории и тегу

Если кто-то уже скопировал себе код, скопируйте еще раз, там ошибка была  :blush:

8

Re: Фильтр по категории и тегу

Появилось время, хочу сделать виджет из этого кода. Такой вопрос - Нужен ли вообще фильтр по двум тегам сразу? Может достаточно просто категории и тега?

9

Re: Фильтр по категории и тегу

ajayver пишет:

Появилось время, хочу сделать виджет из этого кода. Такой вопрос - Нужен ли вообще фильтр по двум тегам сразу? Может достаточно просто категории и тега?

А сильно повлияет на твое затраченное время? Так что больше не меньше.

Я изначально был бы рад и просто фильтрации по категории и одному тегу. Но наверно два тега лучше. Хотя с другой стороны можно и поиском по сайту воспользоваться по ключевому слову.

Жизнь - это тоже путешествие
Life-trip.ru

10

Re: Фильтр по категории и тегу

Вот, написал плагин:
http://travelbloggers.ru/uploads/plugin … filter.zip
Распакуйте в папку /wp-content/plugins/ , активируйте плагин в админке, после чего можете добавлять виджет в сайдбар.

11

Re: Фильтр по категории и тегу

ajayver пишет:

Вот, написал плагин:
http://travelbloggers.ru/uploads/plugin … filter.zip
Распакуйте в папку /wp-content/plugins/ , активируйте плагин в админке, после чего можете добавлять виджет в сайдбар.

При всей ненужности тегов для меня.
считаю такой плагин достойным репозитария Wordpress. Внеси свое имя в историю;)

12

Re: Фильтр по категории и тегу

Поддерживаю Диму, можно и нужно попробовать добавить в репозитарий!

Аджей, спасибо! Попробовать сейчас не могу, через недельку отпишусь ))

Жизнь - это тоже путешествие
Life-trip.ru

13

Re: Фильтр по категории и тегу

Спасибо, друзья :) Я в репозиторий заявку подал раньше, чем здесь плагин опуликовал  :blush:

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

Буду рад так же пожеланиям и правкам здесь.

14

Re: Фильтр по категории и тегу

Вот, можно тут теперь качать: http://wordpress.org/extend/plugins/cat … er-widget/
Или устанавливать плагин прямо из админки поиском. Называется он "Cat + Tag Filter"

15

Re: Фильтр по категории и тегу

Могу разве что со стороны пользователя потестить. Сайтов с тегами у меня особо нет, а где есть- там плагин не в тему будет.
Итак, что я бы хотел как пользователь. Тебе видней, что полезно и реализуемо.
Идея плагина 5+
1. Хотелось бы, чтобы список тегов формировался динамически, то есть при выборе рубрики - мне в списке показывался теги, только те, которые есть в этой рубрике, а не все.
2. Второй тег можно реализовать так. Пользователь кликает на галочку и ему ещё показывается один список ниже и там тоже неплохо бы только теги из рубрики. Второй тег будет востребован только на сайтах с огромным количеством статей - даже тревеливинг не подходит под это описание.

16

Re: Фильтр по категории и тегу

Спасибо за предложения!
Все это можно решить используя AJAX, но на тревеливинге мы jquery еще не подключали и мне очень не хочется нагружать этим сайт.

sputnik1818 пишет:

Второй тег будет востребован только на сайтах с огромным количеством статей - даже тревеливинг не подходит под это описание.

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

На днях добавлю еще опциональные поля фильтра по авторам и дате.


Notice: Undefined variable: pattern_callback in /var/www/html/travelbloggers.ru/public_html/include/parser.php on line 814

17

Re: Фильтр по категории и тегу

Хочу по случаю спросить, а где стиль этого плагина настроить можно, в смысле с каким кодом его добавлять в style.css?

18

Re: Фильтр по категории и тегу

Art_gud пишет:

Хочу по случаю спросить, а где стиль этого плагина настроить можно, в смысле с каким кодом его добавлять в style.css?

Тут все зависит от вашего шаблона, по идее плагин использует стандартные теги для виджетов и должен отображаться в схожем стиле с остальными виджетами. Если вы хотите что-то изменить, то нужно просто писать стандартный css. Классы элементов можно посмотреть через firebug в firefox или в хроме правой кнопкой - Inspect Element.

19

Re: Фильтр по категории и тегу

У меня в шаблоне почему-то не так, как нужно отображается  :(  ну да ладно, что-то буду думать...

20

Re: Фильтр по категории и тегу

Здравствуйте! Спасибо вам огромное за плагин! Подскажите пожалуйста, а что нужно в коде поменять, чтобы остался выбор только по тегам - у меня категорий нет как таковых..

21

Re: Фильтр по категории и тегу

Попробуйте заменить 165-тую строку:

<?php  cat_options(); ?> <br />

На вот эту:

<input type="hidden" name="cat" value="-1" />

22

Re: Фильтр по категории и тегу

Спасибо, все получилось

23

Re: Фильтр по категории и тегу

ajayver пишет:

Спасибо, друзья :) Я в репозиторий заявку подал раньше, чем здесь плагин опуликовал  :blush:

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

Буду рад так же пожеланиям и правкам здесь.

Привет. Так как можно вставить второй-третий тег ?

24

Re: Фильтр по категории и тегу

Там есть опция отображать теги чеклистом, он позволяет выбор нескольких тегов. А вообще плагин уже устарел, лучше поискать ему альтернативы, благо они есть.

25

Re: Фильтр по категории и тегу

Я понял, но если у меня 2 вида тегов - как их вывести ?