Немного о таксономии и тегах в WordPress

[ ←Вернуться к стандартному виду ]

Печатная версия

Нашла несколько примеров практического использования тегов в WordPress и решила поделиться с широкой общественностью.

Теоретическую часть я не осилю, так что сразу рекомендую читать у Максима отличную статью по теме «таксономия в WordPress».

Знаете, за что меня не любила школьная учительница математики? На то было 2 причины.

Первая: с 7 по 10 классы у меня была такаяcnfy же красивая кофта с блестками made in Turkey, как у нее, поэтому она ее не могла носить и сильно переживала по этому поводу — женские заморочки, мужчины не поймут:)

Вторая: когда начиналась новая тема, все втыкали и аккуратно списывали замысловатые каракули с доски в тетрадку. Меня же всегда в первую очередь сильно волновали вопросы «А зачем нам тригонометрические функции? А для чего логарифмы в повседневной жизни? А где и как пригодятся знания о том, что функция sin x обращается в нуль при x = πn?», которые учительнице сильно не нравились.

Поэтому перейдем сразу к практике.

Как можно вывести записи, помеченным тегом или набором определенных тегов?

Тут нам поможет новый параметр tag в query_posts (для юзанья в wordpress 2.2.1 и выше).

Выведет посты с тегом «рекомендуем»

query_posts('tag=рекомендуем');

Выведет посты, помеченные тегами «рекомендуем» и/или «туц»

query_posts('tag=рекомендуем,туц');

Выведет посты, которые помечены 3 тегами одновременно: «рекомендуем», «туц» и «wordpress»

query_posts('tag=рекомендуем+туц+wordpress');

Вместо русских названий тегов лучше писать их урлы (slug), т.е. вместо конструкции из двухсловного тега вида 'tag=рекомендуем купить' использовать slug этого тега: 'tag=rekomenduem-kupit'

Пример:

Рекомендуем:

<?php query_posts('tag=rekomenduem'); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

… дальше все стандартно

Где это может понадобится?

Например, у нас сайт с каталогом софта, и мы можем оперативно выводить в блоке «Рекомендуем купить» записи с описанием софта, на который хотим обратить внимание посетителей сайта. А возможно это горящие предложения, которые после определенной даты/момента становятся неактуальными, тогда нечего им торчать на главной странице :)

В чем удобство?

шспользуя query_posts('tag=Рекомендуем'); для вывода таких записей мы во-первых сохраняем урл записи в первозданном виде (я, например, пользуюсь шаблоном ЧПУ %category%/%postname%.htm), а во-вторых имеем возможность удалять/добавлять тег «Рекомендуем» постам и страницам оптом из админки — с помощью плагина Simple Tags (wp 2.3) или Simple Tagging (wp 2.2.3 и ниже).

Причем, заметьте, query_posts('tag=rekomenduem'); выводит и посты (Posts) и страницы (Pages), помеченные тегом «Рекомендуем».

ш вот еще: чтобы вывести все записи с опред. тегом/набором тегов на одной странице, нужно дописать дополнительный параметр в query_post posts_per_page

<?php query_posts('tag=rekomenduem&posts_per_page=-1'); ?>

Если нужна постраничная навигация при query_posts, то воспользуйтесь кодом отсюда.

Архив по тегам

WordPress позволяет выводит архивы, группируя посты по тегам по тому же принципу:

  • http://your-blog-uri/?tag=rekomenduem,wordpress-plugins
    выведет архив постов, помеченных тегами rekomenduem и/или wordpress-plugins
  • http://your-blog-uri/?tag=rekomenduem+wordpress-plugins
    выведет архив постов, помеченных одновременно rekomenduem и wordpress-plugins

При использовании ЧПУ: http://your-blog-uri/tag/rekomenduem+wordpress-plugins

RSS тегов

http://your-blog-uri/?tag=rekomenduem+wordpress-plugins&feed=rss
Так можно подписаться на RSS постов, помеченных определенными метками (в данном примере метками «Рекомендуем» и «wordpress-plugins»).

Как можно получить записи определенной категории, помеченные одним или несколькими тегами?

Тут нам поможет плагин TDO Tag Fixes (только для wp 2.3 и выше).

Установка простая: скачать, распаковать, залить папку tdo-tag-fixes в папку с плагинами, активировать. Управления из админки нет, некоторые настройки можно произвести непосредственно в коде самого плагина.

С помощью этого плагина возможно выводить посты определенной категории, помеченные одним или несколькими тегами. Возможности выводить записи из нескольких категорий, помеченные опред. тегом/тегами пока НЕТ.

Если используется ЧПУ, то добавьте в конец урла ?tdo_tag=a_tag, пример:

http://your-blog-uri/category/mycategory?tdo_tag=recomenduem

Без ЧПУ — &tdo_tag=a_tag, где a_tag это урл (слаг) тега, а не его имя:

http://your-blog-uri/?cat=35&tdo_tag=rekomenduem

Здесь также можно использовать "," и "+" для соединения тегов, например:

http://your-blog-uri/?cat=35&tdo_tag=rekomenduem+internet
http://your-blog-uri/category/mycategory?tdo_tag=rekomenduem,internet

UPD 08.04.2008  Выводим посты категории mycategory с тегами recomenduem и/или wordpress и сортируем их по алфавиту:

http://your-blog-uri/category/mycategory?tdo_tag=recomenduem,wordpress&orderby=title&order=asc

Облако тегов (стандартный wp_tag_cloud или стандартный виджет «Облако меток») с включенным плагином TDO Tag Fixes приобретает некоторые способности: при просмотре категории отображаются только теги, связанные с этой категорией. Т.е., если вы находитесь в определенной категории и кликните по тегу, то выведутся все записи этой категории с данным тегом.
Впрочем, если больше нравится стандартное облако меток, то можно и отключить описанную выше фичу, для этого в строке 25 плагина сменить true на false

$tdotf_fix_tag_cloud_auto = true;

ш rss тоже работает. Выводим rss для постов с тегами «рекомендуем» и/или «интернет» из категории mycategory:

http://your-blog-uri/category/mycategory?tdo_tag=rekomenduem,internet&feed=rss

Статья по теме: Taxonomy Intersections and Unions (англ., автор boren.nu).


Оставить комментарий »

  1. # vova 19.01.2008 в 06:02

    За все ваши разбирательства в вордпрессе выражаю огромнейшее спасибо!

  2. # GTA (1) 13.02.2008 в 14:06

    спасибо дорогая соника, на самом деле очень полезно.

  3. # Foxx 31.03.2008 в 20:49

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

  4. # sonika (300) 31.03.2008 в 23:34

    Foxx, зачем Вам для этого плагин? Убираете < ?php the_content(); ?> из соответствующего шаблона - и все дела.

  5. # Максим Покровский (2) 21.06.2008 в 00:43

    Использую TDO Tag Fixes. Возникла необходимость указать кол-во страниц. Попробовал твой способ. Бесполезно. Любой параметр в query-posts и теги перестают работать.

  6. # majormo (1) 21.07.2008 в 15:32

    спасибо за статью, очень помогли

  7. # Lann 04.12.2008 в 19:34

    Уважаемая, Соника

    Пишу в шаблоне

    получаю - syntax error, unexpected $end

    добавляю endif; получаю, unexpected T_ENDIF

    В пхп, как видите не очень силен, подскажите?

  8. # Lann 04.12.2008 в 19:37

    Сорри, по последнему посту. я разобрался. спасибо

  9. # Alexpts (4) 12.01.2009 в 22:47

    После обновления с 2,3,3 все теги и новые записи в URL выводят вместо %postname% что-то похожее на это - rrrirrg (раньше было zavod). Может быть вы знаете в чем может быть дело?

  10. # Semm 20.02.2009 в 02:51

    Здравствуйте.
    У вас ошибка здесь:
    "В чем удобство?
    шспользуя "
    Очень интересный блог - непременно зайду еще.
    Куча разного материала. Спасибо.

  11. # Отзывы (1) 17.01.2010 в 15:02

    Спасибо, за то что рассказали про установку плагина TDO Tag Fixes. А то мучался с ним.

Подписаться на фид.
RSS комментариев к этой записи. | TrackBack URI

Написать комментарий


Все саттелиты — в топку! Даже не сомневайтесь. Для вопросов о вордпресс не по теме поста есть два русскоязычных форума по wordpress.


Warning: Illegal string offset 'solo_subscribe' in /var/www/sonika/data/www/sonika.ru/blog/wp-content/plugins/subscribe-to-comments.php on line 304

Подписаться, не комментируя

[ ←Вернуться к стандартному виду ]

Печатная версия