Немного о таксономии и тегах в 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-pluginshttp://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).
За все ваши разбирательства в вордпрессе выражаю огромнейшее спасибо!
спасибо дорогая соника, на самом деле очень полезно.
Простите что беспокою, но не встречался ли Вам плагин, который выводит только заголовки сообщений? Т.е. по клику на заголовке открывается вся тема, без всяких далее и т.п.?
Я просто уже не знаю где смотреть...
Foxx, зачем Вам для этого плагин? Убираете
из соответствующего шаблона - и все дела.
Использую TDO Tag Fixes. Возникла необходимость указать кол-во страниц. Попробовал твой способ. Бесполезно. Любой параметр в query-posts и теги перестают работать.
спасибо за статью, очень помогли
Уважаемая, Соника
Пишу в шаблоне
получаю - syntax error, unexpected $end
добавляю endif; получаю, unexpected T_ENDIF
В пхп, как видите не очень силен, подскажите?
Сорри, по последнему посту. я разобрался. спасибо
После обновления с 2,3,3 все теги и новые записи в URL выводят вместо %postname% что-то похожее на это - rrrirrg (раньше было zavod). Может быть вы знаете в чем может быть дело?
Здравствуйте.
У вас ошибка здесь:
"В чем удобство?
шспользуя "
Очень интересный блог - непременно зайду еще.
Куча разного материала. Спасибо.
Спасибо, за то что рассказали про установку плагина TDO Tag Fixes. А то мучался с ним.