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